【问题标题】:printing hash of hash in perl在 perl 中打印散列的散列
【发布时间】:2014-05-05 04:43:11
【问题描述】:

我有一个hash of hash的hash:

 $hash{$lengths}{$orfs}{$starts}{$ends} = 1;

我不想输出整个哈希,所以我不想使用 data::Dumper。

我想要做的,是输出所有 $lengths 为 2678 的 $orfs

但是当我这样做时:

print "$hash{'2678'}";

我得到输出:

HASH(0xa4a298)

我做错了什么?

我想要的是 $orfs 中特定于 $length 2678 的值,而不是它们的位置...

【问题讨论】:

  • 我不想使用 Dumper,因为这会给我整个哈希的其余部分。我真的只想要 $orfs 中的任何东西。 Dumper 会给我所有的 {$orfs}{$starts}{$ends} => 1

标签: perl hash


【解决方案1】:

您可以在 hashref 上使用Data::Dumper

use Data::Dumper;

print Dumper($hash{'2678'});

正如Matt 指出的那样,如果您只想要哈希引用的keys,请使用:

print keys %{$hash{'2678'}};

最后,有关其他提示,请查看Perl Data Structures Cookbook

【讨论】:

  • 我不想使用 Dumper,因为这会给我整个哈希的其余部分。我真的只想要 $orfs 中的任何东西。 Dumper 会给我所有的 {$orfs}{$starts}{$ends} => 1
  • 我想他只是想打印$hash{'2678'} 中的密钥。类似print keys $hash{'2678'};.
  • ^haha 是的,这就是我想要的......事后看来......非常明显......谢谢!
  • 好的,那你要keys %{$hash{'2678'}}
猜你喜欢
  • 2019-01-13
  • 2013-01-30
  • 2017-08-22
  • 2010-11-12
  • 1970-01-01
  • 2013-09-10
  • 2013-07-19
  • 2011-03-13
  • 2014-12-14
相关资源
最近更新 更多