【问题标题】:perl hash printing the value of a keyperl 哈希打印键的值
【发布时间】:2019-12-17 17:28:59
【问题描述】:

以下脚本存储键值对。根据给定的输入键,它应该检索相应的值。在下面的代码中,我能够从第一次打印中看到键值对,但是当我将其中一个键作为输入时,它会抛出一个错误,提示“未初始化的哈希”。 如何解决?

...
for my $key ( sort keys %hash ) {
    print "$key = $hash{$key}\n"; 
}
 my $key = <STDIN>;
 print "list is = $hash{$key}\n";

【问题讨论】:

  • FWIW,“错误”只是一个警告,完整的警告是“未初始化的哈希值”,因为您试图将没有定义的哈希键的值插入到字符串中值(未初始化是一个不幸的词选择,现在主要用于反向兼容)。
  • @Grinnz,关于““错误”只是一个警告”,所以?错误导致警告和不正确的输出而不是异常并不会减少错误。
  • 即使很清楚错误是什么,如果您在问题中同时提供 STDOUT 和 STDERR 以及添加打印$key,而不仅仅是$hash{$key},这将有助于将来。正如一条评论和接受的答案所说,STDOUT 会建议需要chomp

标签: perl hash key


【解决方案1】:

$key 包含输入的行包括尾随换行符。添加

chomp($key);

【讨论】:

    猜你喜欢
    • 2011-10-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-30
    • 2012-08-10
    • 2022-01-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多