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

5

我一直在努力将变量分配给Perl中的键。我的目的是提示用户输入一个值,将该值存储在一个变量中,然后使用该变量作为键来访问并打印哈希表中保存的值。下面的代码有助于说明我的问题:

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

问题在于print($hash{$key});没有输出到屏幕上,但是printf($hash{"a"});却有输出;我不理解这一点。如有帮助和澄清,将不胜感激。提前致谢。

1
可能是重复的问题:我正在寻找有关chomp的一些澄清 - Zaid
1个回答

12

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

$key = <>;
chomp $key;
...
print $hash{$key};

2
我个人更喜欢使用一行代码 chomp($key = <>); - Chris Lutz

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接