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

Perl简写疑惑

发布时间:2020-12-15 23:30:00 所属栏目:大数据 来源:网络整理
导读:我从来没有真正学过Perl的任何深度,但我正在通过我的工作做一个课程(我能说“只是为了好玩吗?”). 我理解基础知识没有任何重大问题,但我现在正在学习参考文献和速记.我对数组的速记和访问引用值有疑问,请考虑下面的两个脚本: @Codes = ( ["A1W",["A2Q","A2
我从来没有真正学过Perl的任何深度,但我正在通过我的工作做一个课程(我能说“只是为了好玩吗?”).
我理解基础知识没有任何重大问题,但我现在正在学习参考文献和速记.我对数组的速记和访问引用值有疑问,请考虑下面的两个脚本:

>

@Codes =
        (
         ["A1W",["A2Q","A2Z"]],["B2R","BB3"]
        );
$CodeRef = @Codes;

#full notation
print @{@{@{$CodeRef}[0]}[1]}[1],"n";

#shorthand notation
print $CodeRef->[0]->[1]->[1],"n";

>

my $BookPageArray;
{
        $AnotherArray = [24,18,36]; 
        $Reference = $AnotherArray; 
        $BookPageArray = $AnotherArray; 
        $AnotherArray = [53,256,42];  count drops to 0
}
undef $Reference;
print ${$BookPageArray}->[0]."n";

我的问题是为什么在第二个例子中,最终print语句中的$BookPageArray引用需要在它周围使用大括号,而在第一个示例中,$CodeRef引用不是?

如果我在第二个例子中取出大括号和前面的$符号,它告诉我那个引用没有数组……

是否与第二个示例使用匿名数据这一事实有关?

解决方法

你可以删除curlies:

$$BookPageArray->[0]."n";

你需要两个$s,因为BookPageArray是对数组引用的引用.所以第一个’$’获取对数组的引用,箭头取消引用并索引数组.

(编辑:李大同)

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

    推荐文章
      热点阅读