对$scalar的引用:
my $variable;my $reference=\$variable;
对$scalar的解引用:
$$reference;
对@array的引用:
my @array;my $reference=\@array;
对@array的解引用:
$$reference[element];$reference->[element];@$reference; #to access the whole array
对%hash的引用
my %hash;my $reference=\%hash;
对%hash的解引用:
$$reference{'key'};$reference->{'key'};%$reference; #to access the whole hash
对函数的解引用:
&$function(arguments);$function->(arguments);
对函数的引用:
sub function{}my $function=\&function;
匿名数组:
my $array;@$array=("a","b");$$array[3]="c";$array->[4]="d";print @$array;
匿名函数:
my $reference=sub {};&$reference(parameters);
or
sub function{}
${\function(parameters)};
ref函数返回相应的引用类型:
ref(\@array)=ARRAY;ref(\%hash)=HASH;ref(\&function)=CODE;ref(\\@array)=REF;ref(\*hash)=GLOB;
数组的数组:
$array[$i]->[$j];$arrat[$i][$j]
引用不能作为hash中的键字。
${a}=$a;${"a"}=$a; #是一个符号引用
如果不使用符号引用: use strict 'refs';使用:"no strict 'refs'";
$name="bam";
$$name=1; #$bam=1
$name->[0]=4; # @bam,$bam[0]=4
$name->{X}="Y";
@$name=(); # clear @bam
&$name; #call &bam