Linux 在perl中如何将变量作为密钥传递给散列
输出: 在host.pl第7行的打印中使用未初始化的值 无法将变量作为密钥传递给哈希 问候,, 卡莱Linux 在perl中如何将变量作为密钥传递给散列,linux,perl,Linux,Perl,输出: 在host.pl第7行的打印中使用未初始化的值 无法将变量作为密钥传递给哈希 问候,, 卡莱 您正在用单引号引用$host。因此,不会对其进行插值。您想要的是$envin{$host}$envin{“$host”}可以工作,但引号是多余的 $host可能有换行符。(chomp将修复) 通常,散列的书写方式更为清晰: my $host =`hostname | cut -c8-10`; my %envin = ('dev','dev','stg','stage','prd','
- 您正在用单引号引用
。因此,不会对其进行插值。您想要的是$host
$envin{$host}
可以工作,但引号是多余的李>$envin{“$host”}
可能有换行符。($host
将修复)chomp
- 通常,散列的书写方式更为清晰:
my $host =`hostname | cut -c8-10`; my %envin = ('dev','dev','stg','stage','prd','prod'); print $envin{'$host'};
- 您正在用单引号引用
。因此,不会对其进行插值。您想要的是$host
$envin{$host}
可以工作,但引号是多余的李>$envin{“$host”}
可能有换行符。($host
将修复)chomp
- 通常,散列的书写方式更为清晰:
my $host =`hostname | cut -c8-10`; my %envin = ('dev','dev','stg','stage','prd','prod'); print $envin{'$host'};
使用Data::Dumper$数据::转储程序::Useqq=1;打印转储程序$host
True。这是一个有用的功能,但我倾向于保留引号,因为我觉得它更清晰。嗨,Sobrique,我用了你说的hash。并打印$envin{$host};但同样的错误..我得到print$host的输出是dev.ya.it given从命令行运行“hostname | cut-c8-10”,告诉我们它打印的内容$host将在末尾有一个换行;在将其用作哈希键之前,请先使用chomp将其删除。检查值的一个好方法是使用Data::Dumper$数据::转储程序::Useqq=1;打印转储程序$host