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

为什么Perl在字符串插值期间评估${…}中的代码?

发布时间:2020-12-15 22:01:04 所属栏目:大数据 来源:网络整理
导读:为什么以下代码段可以正常工作?使用这个可能有什么邪恶?但严重的是,有没有任何理由,${}中的代码会被评估,然后用作标量参考? use strict;no strict 'refs';our $message = "Hello world!";print "${ lc 'MESSAGE' }n"; 解决方法 没关系,unless you use sy
为什么以下代码段可以正常工作?使用这个可能有什么邪恶?但严重的是,有没有任何理由,${}中的代码会被评估,然后用作标量参考?
use strict;
no strict 'refs';

our $message = "Hello world!";
print "${ lc 'MESSAGE' }n";

解决方法

没关系,unless you use symbolic references.假设以下代码:
my %messages = (hello => "Hello world!",bye => "Bye-bye,world!");
sub get_message_ref { return $messages{$_[0]} }; # returns scalarref
print "${ get_message_ref('bye') }n";

同意,scalarrefs的用处并不明显,但它对于arrayrefs非常有用.

print "keys: @{[keys %messages]}n";

(编辑:李大同)

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

    推荐文章
      热点阅读