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

Perl,懒洋洋地评估字符串

发布时间:2020-12-15 21:51:41 所属栏目:大数据 来源:网络整理
导读:请考虑以下Perl代码. #!/usr/bin/perluse strict;use warnings;$b="1";my $a="${b}";$b="2";print $a; 脚本显然输出1.我希望它是$b的当前值. Perl中最聪明的方法是如何实现这样的懒惰评估?我希望${b}保持“未替代”,直到需要$a. 解决方法 我更想知道你为什
请考虑以下Perl代码.
#!/usr/bin/perl

use strict;
use warnings;

$b="1";

my $a="${b}";

$b="2";

print $a;

脚本显然输出1.我希望它是$b的当前值.

Perl中最聪明的方法是如何实现这样的懒惰评估?我希望${b}保持“未替代”,直到需要$a.

解决方法

我更想知道你为什么要这样做.根据您真正需要做的事情,您可以使用各种方法.

您可以将代码包装在coderef中,并仅在需要时对其进行评估:

use strict; use warnings;

my $b = '1';
my $a = sub { $b };
$b = '2';
print $a->();

这种方法的一个变体是使用命名函数作为closure(这可能是最好的方法,在你的调用代码的更大的上下文中):

my $b = '1';
sub print_b
{
    print $b;
}

$b = '2';
print_b();

您可以使用对原始变量的引用,并根据需要取消引用它:

my $b = '1';
my $a = $b;
$b = '2';
print $$a;

(编辑:李大同)

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

    推荐文章
      热点阅读