my $host =`hostname | cut -c8-10`;
my %envin = ('dev','dev','stg','stage','prd','prod');
print $envin{'$host'};
输出:
在host.pl第7行打印时使用未初始化的值。
无法将变量作为哈希
的键传递此致 卡莱
答案 0 :(得分:6)
$host
。因此它不会被插值。您想要$envin{$host}
。 $envin{"$host"}
会起作用,但报价是多余的。 $host
可能有换行符。 (chomp
将修复)通常哈希的写法更清晰:
my %envin = (
'dev' => 'dev',
'stg' => 'stage',
'prd' => 'prod',
);