多层perl哈希
当我使用Dumper时,我有一个如下所示的哈希。我想迭代每个级别,并单独打印所有内容多层perl哈希,perl,hash,Perl,Hash,当我使用Dumper时,我有一个如下所示的哈希。我想迭代每个级别,并单独打印所有内容 $VAR1 = { 'TP144' => { 'LNDN CDR' => [ 'NAME XYZ FNAME ABC STATUS MA
$VAR1 = {
'TP144' => {
'LNDN CDR' => [
'NAME XYZ
FNAME ABC
STATUS MARIED
TEST "THIS IS TEST"
TEMP!VALUE 0'
],
看起来是这样的:L2的值本身就是一个数组
$VAR1{L1}{L2}=>ARRAY
感谢您的帮助
提前谢谢
编辑:谢谢Mat,我在那个链接中找到了答案。我是这样做的
foreach $L1 ( sort keys %VAR1 ) {
print "$L1: { ";
for $L2 ( sort keys %{ $VAR1{$L1} } ) {
foreach (@{$VAR1{$L1}{$L2}})
{
print $_."\n";
}
}
print "}\n";
}
最简单的方法是递归地这样做
- 检查递归子对象的输入
- 如果您的输入是标量,请打印
- 如果您的输入是n arrayref,则循环每个元素并使用子元素递归打印该元素
- 如果您的输入是一个hashref,则在每个键上循环,并使用sub递归地打印该键的值
完成最简单的方法是递归执行
- 检查递归子对象的输入
- 如果您的输入是标量,请打印
- 如果您的输入是n arrayref,则循环每个元素并使用子元素递归打印该元素
- 如果您的输入是一个hashref,则在每个键上循环,并使用sub递归地打印该键的值
完成如果您在执行这三个步骤中的任何一个步骤时遇到问题,请说明您尝试了什么,并询问如何解决。我尝试了此方法:但我得到以下错误:
key=[TP144]:value=[HASH(0x16b6478)]
@Mardanian-您阅读了答案吗?您需要一个递归sub如果您在实现这三个步骤中的任何一个时遇到问题,请说明您尝试了什么并询问如何解决它。我尝试了这个:但我得到以下错误:key=[TP144]:value=[HASH(0x16b6478)]
@Mardanian-您读过答案了吗?你需要一个递归函数sub@Mat谢谢这个链接帮助我找到了正确的答案。@Mardanian-这是可行的,但请注意只提供相同的数据结构。它不适用于其他结构。@Mat感谢该链接帮助我找到了正确的答案。@Mardanian-这是可行的,但请注意只向它提供相同的数据结构。它不适用于其他结构。