gpt4 book ai didi

perl - 为什么我不能通过 typeglob 访问词法变量?

转载 作者:行者123 更新时间:2023-12-01 23:14:10 26 4
gpt4 key购买 nike

我不明白为什么下面的示例会失败(测试 2)。为什么我不能从 *bb glob 访问变量 bb?

use Test::More tests => 4;

$aa = 1;
my $bb = 2; # HERE!
local $cc = 3;
our $dd = 4;

is(${*aa}, 1, "$ \*aa should be 1");
is(${*bb}, 2, "$ \*bb (my) should be 2");
is(${*cc}, 3, "$ \*cc (local) should be 3");
is(${*dd}, 4, "$ \*dd (our) should be 4");

输出是

1..4
ok 1 - *aa should be 1
# Failed test '*bb (my) should be 2'
# at untitled line 10.
# got: undef
# expected: '2'
# Looks like you failed 1 test of 4.
not ok 2 - *bb (my) should be 2
ok 3 - *cc (local) should be 3
ok 4 - *dd (our) should be 4

在 perl 5.16.0 下

谢谢

最佳答案

词法变量(那些用 my 创建的)不是符号表的一部分,所以它们不能被 globs 访问。另见 Of Symbol Tables and Globs .

关于perl - 为什么我不能通过 typeglob 访问词法变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14911006/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com