如何在Perl中使用变量作为哈希键?

waf*_*age 5 variables perl hash

我一直在努力将变量赋值给Perl中的键.我要做的是提示用户输入一个值,该值保存在一个变量中,该变量用作访问和打印哈希表中保存的值的键.以下代码有助于说明我的问题:

my $key = 0;
print( "Enter the value for your key\n" );
$key = <>;
my %hash = (
   a => "A",
   b => "B",
);
    print( $hash{$key} );
Run Code Online (Sandbox Code Playgroud)

问题是print($ hash {$ key}); 什么都不打印到屏幕上,但printf($ hash {"a"};确实;我不明白.任何帮助和澄清将不胜感激.提前致谢.

dus*_*uff 12

$key最终被设置为(例如)"a\n",而不是"a".使用chomp内置函数删除尾随换行符:

$key = <>;
chomp $key;
...
print $hash{$key};
Run Code Online (Sandbox Code Playgroud)

  • 我更喜欢单行`chomp($ key = <>);`我自己. (2认同)