perl引用
perl中引用的概念:一组数据实际上是另一组数据的引用。这些引用称为指针,第一组数据中存放的是第二组数据的头地址。可以把引用理解为指针。
perl---(数组和哈希)引用
创建引用
定义变量的时候,在变量名前面加个\,就得到了这个变量的一个引用,如果要打印引用指向的变量值:
引用类型+$+引用变量
例如:
@$r 数组的值
$$r 标量的值
%$r 哈希值
ref 函数
简单来说,就是如果一个变量是个引用,那ref就可以返回一个表示其实际引用对象的描述性字符串,否则就会返回空值。如果没有指定ref函数的参数,默认对$_变量操作。如果被引用的对象已经被打包,则会返回该包的名称,类似typeof操作符。
代码:
my $var1 = 10; # $r 引用 $var 标量 my $r1 = \$var1; # 输出本地存储的 $r 的变量值 print "\$var1 为 : ", $$r1, "\n"; #输出10 my @var2 = (1, 2, 3); # $r 引用 @var 数组 my $r2 = \@var2; # 输出本地存储的 $r 的变量值 print "\@var2 为: ", @$r2, "\n"; #输出123 my %var3 = ('key1' => 10, 'key2' => 20); # $r 引用 %var 数组 my $r3 = \%var3; # 输出本地存储的 $r 的变量值 print "\%var3 为 : ", %$r3, "\n"; #输出 key220key110 if(ref($r1) eq "SCALAR") { print "标量引用\n"; } if(ref($r2) eq "ARRAY") { print "数组引用\n"; } if(ref($r3) eq "HASH") { print "哈希引用\n"; }
4556