如何确定Perl哈希是否是多维的?
发布时间:2020-12-15 21:47:41 所属栏目:大数据 来源:网络整理
导读:假设我有这样的哈希: $hash_ref = { 'hashes' = { 'h1' = { 'klf' = '1','moomooland' = '1' },'h2' = { 'klf' = '2','moomooland' = '2' },'h3' = { 'klf' = '3','moomooland' = '3' } },'keys' = { 'k1' = 'key1','k2' = 'key2','k3' = 'key3' }} 我怎么
假设我有这样的哈希:
$hash_ref = { 'hashes' => { 'h1' => { 'klf' => '1','moomooland' => '1' },'h2' => { 'klf' => '2','moomooland' => '2' },'h3' => { 'klf' => '3','moomooland' => '3' } },'keys' => { 'k1' => 'key1','k2' => 'key2','k3' => 'key3' } } 我怎么能尽可能容易地发现哈希包含3个以上的哈希值,而键包含3个键值/值对? ref会为它们返回HASH,我不确定是否有可能找出这些哈希的深度. 谢谢 :) 解决方法
如果您只需要知道散列是否是多维的,则可以迭代其值并在找到引用时停止:
my $is_multi_dimensional = 0; for my $value (values %$hash_ref) { if ('HASH' eq ref $value) { $is_multi_dimensional = 1; last; } } 或者你可以使用each()函数: while (my (undef,$value) = each %$hash_ref) { if ('HASH' eq ref $value) { $is_multi_dimensional = 1; last; } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |