|
当给hash 赋值时,有时并不明显哪些元素是keys,那些是values。例如,在下面的赋值中(我们在前面已经见过了),我
们需要仔细的计数,“key,value,key,value,…”,来判断2.5 是key 还是vlaue:
%some_hash = ( “foo”, 35, “bar”, 12.4 ,2.5, “hello”, “Wilma”, 1.72e30, “betty”, “bye\n”);
如果Perl 能提供一种方法,让我们轻易的辨别出哪一个是key,哪一个是value,那该有多好?Larry 也想过这个问题,因
此发明了大箭头符号(=>)◆。对于Perl 来讲,其作用和和逗号(,)类似,因此有时称作“胖逗号(fat comma)”。Perl 语法
中,在需要逗号(,)的时候,都可以使用大箭头符号替换;对于Perl 来讲,它们是一样的◆。下面是给hash 赋值的另一
种方法:
◆是的,还有小箭头(->)。它和引用一起使用,这是高级话题。如果你准备好了,可以参见perlreftut 和perlref 的帮助手册
◆它们在技术上还是有一点不同:任何大箭头符号(=>)左侧的bareword(由字母,数字,下划线,但不是由数字开头,前面有可选的
加号或减号,组成的序列)都暗含着由引号括起来了的。因此可以省略掉大箭头符号(=>)左侧bareword 上的引号。你也可以忽略掉hash
的花括号中的引号,如果里面只有作为key 的bareword.
my %last_name = (
“fred” => “flintstone”,
“dino” => undef,
“barney”=> “rubble”;
“betty”=> “rubble”,
);
上面代码中,很容易辨别出哪一个是key,哪一个是value。注意列表中最后一个逗号。我们早期讨论过,这个逗号是没什
么用的,但有时能给我们带来方便;如果我们要加入新的元素到hash 中,我们只需知道每一行都有key/value 对,结尾有
逗号。Perl 会查看不同元素之间的逗号,以及列表结尾处的逗号(此逗号非必需的)。 |
|