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

时间:2011-04-05 14:54:15

标签: perl syntax declaration

示例:

my $some_variable;
my @some_variable;
my %some_variable;

我知道,@似乎是数组,$是原语,它是完全正确的吗? 什么是%

4 个答案:

答案 0 :(得分:23)

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

perldoc perlintro

并查看 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

请注意,当您引用哈希数组中的单个值时,使用美元符号。这对初学者来说有点混乱。

我建议您获取 Llama Book Llama Book Learning Perl,是对该语言的精彩介绍。

答案 1 :(得分:14)

$用于标量,@用于数组,%用于散列。有关详细信息,请参阅文档的Variable Types部分。

答案 2 :(得分:10)

$是标量,@是数组,%是哈希值。

答案 3 :(得分:5)

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