|
标量 |
数组 |
散列 |
函数 |
定义符号 |
$ |
@ |
% |
& |
定义 |
$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. 隐藏的箭头: 每一对花括号或方括号之间,隐藏着 一个 -> , 包括 {}[] 或者 []{},下面的例子
@H_502_747@#!perl -w @H_502_747@use @H_502_747@strict; @H_502_747@my @H_502_747@$ref_to_AoA = [ [ @H_502_747@"fred"@H_502_747@, @H_502_747@"barney"@H_502_747@, @H_502_747@"pebbles"@H_502_747@, @H_502_747@"bamm bamm"@H_502_747@, @H_502_747@"dino"@H_502_747@], [ @H_502_747@"homer"@H_502_747@, @H_502_747@"bart"@H_502_747@, @H_502_747@"marge"@H_502_747@, @H_502_747@"maggie"@H_502_747@], [ @H_502_747@"george"@H_502_747@, @H_502_747@"jane"@H_502_747@, @H_502_747@"elroy"@H_502_747@, @H_502_747@"judy"@H_502_747@], ]; @H_502_747@my @H_502_747@@Aoa = ( [@H_502_747@"fred"@H_502_747@, @H_502_747@"barney"@H_502_747@], [@H_502_747@"george"@H_502_747@, @H_502_747@"elroy"@H_502_747@], [@H_502_747@"homer"@H_502_747@, @H_502_747@"bart"@H_502_747@], {@H_502_747@"test"@H_502_747@=>@H_502_747@"aaa"@H_502_747@,@H_502_747@"test2"@H_502_747@=>@H_502_747@"bbb"@H_502_747@} ); @H_502_747@print @H_502_747@$ref_to_AoA->[@H_502_747@2@H_502_747@][@H_502_747@3@H_502_747@]; # 等价于 $ref_to_AoA->[2]->[3]; @H_502_747@print @H_502_747@$Aoa[@H_502_747@3@H_502_747@]{@H_502_747@"test"@H_502_747@}; # 等价于 $Aoa[3]->{"test"}
|