多级perl哈希

时间:2012-09-29 13:32:52

标签: perl hash

当我使用Dumper时,我有一个哈希,如下所示。我想迭代每个级别并单独打印所有内容。

$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";
 }

1 个答案:

答案 0 :(得分:3)

最简单的方法是递归地执行此操作。

  • 检查递归子的输入。

    • 如果您的输入是标量,请打印

    • 如果您的输入是n arrayref,则循环遍历每个元素并使用您的子文件递归打印该元素

    • 如果您的输入是hashref,则遍历每个键并使用您的子句递归打印该键的值。

DONE