加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

引用

发布时间:2020-12-16 00:21:38 所属栏目:大数据 来源:网络整理
导读:-- Start 什么是引用 引用相当于 C 语言中的指针,存储的是内存地址。引用可以指向标量,数组,hash,函数等。 创建和使用引用 使用反斜杠()来创建引用,下面是一个简单的例子。 #!/usr/bin/perl# 常量的引用my $nameRef = "尚波";print "我叫$$nameRefn"

-- Start

什么是引用

引用相当于 C 语言中的指针,存储的是内存地址。引用可以指向标量,数组,hash,函数等。

创建和使用引用

使用反斜杠()来创建引用,下面是一个简单的例子。

#!/usr/bin/perl

# 常量的引用
my $nameRef = "尚波";
print "我叫$$nameRefn";


# 简单变量的引用
my $name = "尚波";
my $nameRef = $name;
print "我叫${$nameRef}n";


# 匿名数组的引用
my $namesRef = ["李四","王五"];
print "我的同学:@$namesRefn";


# 数组的引用
my @names = ("李四","王五");
my $namesRef = @names;
print "我的同学:$$namesRef[0] 和 $namesRef->[1]n"; # 访问元素的形式有两种


# 匿名散列的引用
my $nameForAge = {"李四" => 18,"王五" => 19};
print "我的同学的年龄:",values %$nameForAge,"n";


# 散列的引用
my %nameForAge = {"李四" => 18,"王五" => 19};
my $nameForAgeRef = %nameForAge;
print "我的同学的年龄:$$nameForAge{'李四'} 和 $nameForAge->{'王五'}n"; # 访问元素的形式有两种


# 匿名函数的引用
my $functionRef = sub {print "testn";};
&$functionRef;


# 函数的引用
sub myPrint{print "testn";}
my $functionRef = &;myPrint;
$functionRef->();

判断引用类型

如果一个函数从外部接收一个引用,我们需要判断出引用指向的原始数据类型,ref() 函数提供了这样的功能,下面是一个简单的例子。

#!/usr/bin/perl

my $name = "尚波";
my $type = ref($name);

if ($type eq "SCALAR") {
	print '$name 引用了一个标量';
} elsif ($type eq "ARRAY") {
	print '$name 引用了一个数组';
}elsif ($type eq "HASH") {
	print '$name 引用了一个散列';
}elsif ($type eq "CODE") {
	print '$name 引用了一个函数';
}elsif ($type eq "REF") {
	print '$name 引用了一个引用';
}elsif ($type eq "GLOB") {
	print '$name 引用了一个类型通配';
}else {
	print '我也不知道引用了什么';
}

?

-- 更多参见:Perl 精萃

-- 声 明:转载请注明出处 -- Last Updated on 2012-07-06 -- Written by ShangBo on 2012-07-06 -- End

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读