首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么我不能通过typeglob访问词法变量?

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

Stack Overflow用户
提问于 2013-02-16 21:49:16
回答 1查看 126关注 0票数 3

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

代码语言:javascript
复制
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");

输出为

代码语言:javascript
复制
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下

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-02-16 22:12:26

词法变量(使用my创建的变量)不是符号表的一部分,因此globs无法访问它们。另请参见Of Symbol Tables and Globs

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14911006

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档