程序员的知识教程库

网站首页 > 教程分享 正文

Perl基础——引用2: 引用的创建和使用

henian88 2024-10-27 10:07:19 教程分享 2 ℃ 0 评论

在Perl中, 有很多方法来创建一个引用, 这里只介绍基础的方式。


最常用的方法是通过反斜杠操作符:

$numref = \$num;

$constref = \3.1415;

$arrayref = \@arr;

$hashref = \%hash;

$subref = \&subname;

$fhref = \*STDOUT;


匿名数据构造引用:

我们在构造数组的引用时, 可以直接使用中括号来构造引用:

$arrayref = [1,3,5];


这和下面的代码是等效的:

@arr = (1,3,5);

$arrayref = \@arr;


同样的, 在构造散列引用时, 我们可以使用花括号:

$hashref = {

name => 'easyperl',

age => 1,

};


那么我们怎么使用这些引用呢, 怎么获取里面的值呢?

我们在使用引用指向的值时, 需要对引用进行解引用:

具体我们通过例子来看:

my $num = 3;

my $arrayref = [1, 2, 3];

my $hashref = {

name => 'easyperl',

age => 1,

};


我们只需要在引用前加上其原来数据类型的修饰符就可以解引用了:

$numref 现在就是$numref所引用的值:

print $numref;


同样的@$arrayref , %$hashref 就是相关引用指向的数组和散列:

print $arrayref[1];

print $hashref{name};


上面的方式$比较多, 当引用嵌套多次时, 可能会出现这样的解引用:

$$arrayref[1][2][3]

$$hashref{name}{subname}{subsubname}

这样代码可读性会很差,同时引用修饰符过多, 特别容易出错, 因此我们还可以写成这样:

$arrayref->[1]->[2]->[3]

$hashref{name}->{subname}->{subsubname}


使用箭头符号->可以避免这么多的修饰符, 同时解引用的层次也很清晰, 因此大部分情况下都是推荐尽量使用这种方式来解引用。

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表