Perl变量声明中$,@,%之间有什么区别?

nic*_*ola 18 syntax perl declaration

例:

my $some_variable;
my @some_variable;
my %some_variable;
Run Code Online (Sandbox Code Playgroud)

我知道,@似乎是为了数组,$对于原始,它是完全正确的吗?什么是%

Dav*_* W. 26

Perl的一个好处是它带有内置手册.输入以下命令:

perldoc perlintro
Run Code Online (Sandbox Code Playgroud)

并看一下Perl变量类型的部分.你也可以在perl变量的perldoc.perl.org部分看到这个.

快速概述:

  • $ foo是一个标量变量.它可以包含单个值,可以是字符串,数字等.
  • @foo是一个数组.数组可以包含多个值.您可以使用索引访问这些值.例如$ foo的[0]是所述阵列的所述第一元件$ foo的[1]是阵列等的第二个元素(数组通常以零开始).
  • %foo是一个哈希,这就像一个数组,因为它可以包含多个值,但哈希是键控数组.例如,我有一个名为%password的密码哈希.这由用户名键入,值是用户的密码.例如:

    $ password {Fred} ="箭鱼"; $ password {Betty} ="秘密";

    $ user ="Fred"; print"用户$ user的密码是$ password {$ user} \n"; #Prints out Swordfish $ user ="Betty"; print"用户$ user的密码是$ password {$ user} \n"; #Prints out secret

请注意,当您在散列数组中引用单个值时,使用美元符号.这对初学者来说有点混乱.

我建议你拿到骆驼书.在骆驼书学习Perl的,是一个很好的介绍语言.

  • $ 之前加 @ 怎么样?在下面的示例中 - $baseball_team_ids 被传递到子例程,然后在新变量创建中引用。我的 $total_ids = 标量(@$baseball_teamIDs); (2认同)

eld*_*his 14

$用于标量,@用于数组,%用于散列.有关详细信息,请参阅文档的" 变量类型"部分.


Pau*_*lin 11

$是标量,@是数组,%是哈希.

  • @nicola =>`@ _`是一个包含传递给函数的所有参数的数组.`$ _`是一个标量,包含在`for(@array){...}`等情况下使用的当前项.`$ _`与`@ _`无关.你可能会感到困惑的是,要访问参数列表中的单个元素,你可以编写`$ _ [0]`来访问第一个元素.这里sigil变为`$`表示你正在访问一个标量,但尾随的`[0]`告诉perl它正在访问`_`中的数组的标量元素,换句话说,`@ _` . (5认同)

enn*_*ler 5

$ var表示单值标量变量
@var表示数组
%var表示关联数组或散列(它们都相同)