|
标量
|
数组
|
散列
|
函数
|
定义符号
|
$
|
@
|
%
|
&
|
定义
|
$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"}