首页 > 其他 > 详细

perl 中的引用

时间:2017-06-21 15:44:28      阅读:323      评论:0      收藏:0      [点我收藏+]

perl 语言中的引用共分为两类:

声明引用时只需要在对象的前面加上反斜杠

第一列是数组的引用:

代码示例:

my @array     = (1, 2, 3);
my $array_ref = \@array;

第二种是哈希的引用

代码示例:

my %hash     = (1, 2, 3, 4);
my $hash_ref = \@hash;

通过引用去访问对应的值,通过 -> 操作符

数组的引用, 通过 [ ] 中括号 加上对应的下标,代码示例:

my @array     = (1, 2, 3);
my $array_ref = \@array;
print $array_ref->[0];

哈希的引用,通过{}  大括号加上对应的key,代码示例:

my %hash     = (1, 2, 3, 4);
my $hash_ref = \@hash;
print $array_ref->{1};

当我们想要把引用对应的变量传递给另外一个变量时,就需要解引用,使用 { } 大括号

代码示例:

my @array     = (1, 2, 3);
my $array_ref = \@array;
my @array_new = @{$array_ref};

my %hash     = (1, 2, 3, 4);
my $hash_ref = \@hash;
my %hash_new = %{$hash_ref};

数组的引用通过 @ 符号 , 哈希的引用通过 % 符号;

 

引用实际上存储的是所引用对象的地址,举个例子

perl -e my @a = (1, 2, 3, 4);my $b = \@a;print qq{$b\n};
ARRAY(0x122bae8)


perl -e my %a = (1, 2, 3, 4);my $b = \%a;print qq{$b\n};
HASH(0x262dae8)

从上述代码的运行结果可以看出,数组的引用对应的值是 ARRAY+ 地址,哈希的引用是HASH+ 地址,这里的地址是一个16进制的值

除了使用 \ 符号, 声明一个引用外,还可以声明一个匿名引用, 数组的引用使用 [  ] 操作符, 哈希的引用使用 {  } 操作符;

代码示例:

my $array_ref = [1, 2, 3, 4];
my $hash_ref  = {1, 2, 3, 4}

print $array_ref->[0];
print $hash_ref->{1};

 

perl 中的引用

原文:http://www.cnblogs.com/xudongliang/p/7059849.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!