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

w.k*_*w.k 3 perl

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

use 5.014; 
no strict 'refs';

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

say "'$alfa'";
Run Code Online (Sandbox Code Playgroud)

必须是非常简单的事情...我期待$alfa成为5这里.我错过了什么?

zou*_*oul 6

我认为问题是代码只适用于全局变量,而不是使用声明的词法变量my.请参阅常见问题.

our $berta = 5;
 my $gamma = 'berta';
say $$gamma; # 5
Run Code Online (Sandbox Code Playgroud)

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