|
标量 |
数组 |
散列 |
函数 |
定义符号 |
$ |
@ |
% |
& |
定义 |
$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,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 $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", "elroy"],
["homer", "bart"],
{"test"=>"aaa","test2"=>"bbb"}
);
print $ref_to_AoA->[2][3]; # 等价于 $ref_to_AoA->[2]->[3];
print $Aoa[3]{"test"}; # 等价于 $Aoa[3]->{"test"}