【发布时间】:2021-10-18 20:13:43
【问题描述】:
我在一个数组中有一堆哈希。检查我的键和值时,我得到了预期的输出,除了一些特殊情况,因为它们引用了更多的数组/哈希。
想想这样的事情:
@AoH = ( { 'husband' => "homer", 'wife' => "marge" },
{ 'people' => [{'Bob'=> 24, 'Lukas'=> 37}] },
{ 'vegetables' => { 'tomato' => "red", 'carrot' => "orange"} });
我的函数遍历数组并显示我的键和值,如下所示:
sub function(...){
print "$key => $value\n";
}
husband => homer
wife => marge
people => ARRAY(0x6b0d80)
Bob => 24
Lukas => 37
vegetables => HASH(0x2570d38)
tomato => red
carrot => orange
现在我想访问我的键和值,但是当获得像 ARRAY 或 HASH 这样的值时,我想忽略该散列而不打印它。
有什么方法可以只访问标量类型的值吗?
到目前为止,我尝试过这个:
if ($value eq 'ARRAY') {
}
elsif ($value eq ref {}) {
}
else {
print "$key => $value\n";
}
但是,它最终会打印出与上面完全相同的内容,并且不会忽略其他数据结构。
【问题讨论】:
-
您可以使用ref 来检查该值是否为标量
标签: arrays perl data-structures hashmap scalar