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

Posted

技术标签:

【中文标题】在 Perl 中如何使用变量作为哈希键?【英文标题】:How Does One Use a Variable as a Hash Key in Perl? 【发布时间】:2011-09-12 17:51:05 【问题描述】:

我一直在努力将变量作为变量分配给 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"; 会;我不明白。任何帮助和澄清将不胜感激。提前致谢。

【问题讨论】:

I'm looking for some clarification on chomp的可能重复 【参考方案1】:

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

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

【讨论】:

我自己更喜欢单行chomp($key = &lt;&gt;);

以上是关于在 Perl 中如何使用变量作为哈希键?的主要内容,如果未能解决你的问题,请参考以下文章

在 Perl 中测试两个哈希键是不是具有相同的结构

如何将数组作为值存储在 Perl 哈希中?

如何对 Perl 哈希值进行排序并相应地对键进行排序(可能在两个数组中)?

perl 第七弹 变量 IV

如何替换 Perl 哈希键?

如何递归地分配 perl 多维哈希的键的值,其中该键类似于嵌套键的值?