| 标量 | 数组 | 散列 | 函数 |
定义符号 | $ | @ | % | & |
定义 | $test | @test | %test | Sub test |
使用 | $test = ‘a’ | @test = (1,2,3) | %test = (‘a’=>1,’b’=>2) | Sub test{ code } |
元素/使用 | - | $test[n] | $test{key} | &test(param) |
元素符号 | - | [..] | {..} | (..) |
引用 | /$test | /@test | /%test | /&test |
*引用1 | *test{SCALAR} | *test{ARRAY} | *test{HASH} | *test{CODE} |
解引用 | 符号解 | ${/$test} | @{/@test} | %{/%test} | &{/&test} |
箭头解 | - | $test->[n] | $test->{key} | $test->(param) |
$ 解 | - | ${/@test}[n] | ${/%test}{key} | - |
匿名创建 | - | $test=[1,2,3,4] | $test={‘a’=>1,’b’=>2} | $test=sub{ code } |
1. 传递文件句柄时,*号作为文件句柄的定义符号, 例如
open (MYFILE, ">test.123" ); print MYFILE 123 ; splutter(*MYFILE); # /*MYFILE = *MYFILE close (MYFILE); sub splutter { my $fh = shift ; print $fh "her um well a hmmm/n" ; } |
2. 隐藏的箭头: 每一对花括号或方括号之间,隐藏着一个 -> , 包括 {}[] 或者 []{},下面的例子
#!perl -w
use strict;
my $ref_to_AoA = [
[ "fred", "barney", "pebbles", "bamm bamm", "dino"],
[ "homer", "bart", "marge", "maggie"],
[ "george", "jane", "elroy", "judy"],
];
my @Aoa = (
["fred", "barney"],
["george", "jane", "elroy"],
["homer", "marge", "bart"],
{"test"=>"aaa","test2"=>"bbb"}
);
print $ref_to_AoA->[2][3]; # 等价于 $ref_to_AoA->[2]->[3];
print $Aoa[3]{"test"}; # 等价于 $Aoa[3]->{"test"}