【发布时间】:2011-02-08 13:30:45
【问题描述】:
我知道在 Perl 中可以使用变量作为包变量的变量名。我想将变量的内容用作模块名称。例如:
package Foo;
our @names =("blah1", "blah2");
1;
在另一个文件中,我希望能够将标量的内容设置为“foo”,然后通过该标量访问Foo 中的名称数组。
my $packageName = "Foo";
基本上我想做一些类似的事情:
@{$packageName}::names; #This obviously doesn't work.
我知道我可以使用
my $names = eval '$'. $packageName . "::names"
但前提是Foo::names 是一个标量。如果没有eval 语句,还有其他方法可以做到这一点吗?
【问题讨论】:
-
“访问 Foo”是什么意思?
-
编辑了问题。我希望能够访问 foo 中的包变量“@names”