my $host =`hostname | cut -c8-10`;
my %envin = ('dev','dev','stg','stage','prd','prod');
print $envin{'$host'};
输出:
在host.pl第7行的打印中使用未初始化的值。
无法将变量作为密钥传递给哈希
当做,
卡莱
最佳答案
你引用的是单引号。因此,它不会被插值。你想要的是$host
。$envin{$host}
可以,但引号是多余的。$envin{"$host"}
可能有换行符。($host
将修复)
通常散列更清楚地写成如下:
my %envin = (
'dev' => 'dev',
'stg' => 'stage',
'prd' => 'prod',
);
关于linux - 如何将变量作为键传递给Perl中的哈希,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31297928/