为什么我不能使用插值变量作为varname?

时间:2015-09-30 08:25:58

标签: perl

不幸的是,我没弄明白,为什么$alfa仍然是空的:

use 5.014; 
no strict 'refs';

my $berta = 5;
my $gamma = 'berta';
my $alfa = ${$gamma};

say "'$alfa'";

一定非常简单......我希望$alfa在这里成为5。我错过了什么?

1 个答案:

答案 0 :(得分:6)

我认为问题在于代码只适用于全局变量,而不适用于使用my声明的词法变量。 See the FAQ

our $berta = 5;
 my $gamma = 'berta';
say $$gamma; # 5

显然,这在生产代码中不是一个好主意。