2013-05-11 213 views
1

我有哈希將有一個關鍵'窗體'和Table指向其他散列的多個鍵。但桌子將有任何數量trtr將有任何數字td。所以問題是它有匿名數組。如何從這個散列打印表格?哈希打印表哈希perl

'form'=>{ 
    'Table2' => { 
    'tr' => [ 
     { 
     'td' => [ 
       { 
        'db_feild_name' => 'project_details', 
        'type' => 'texta', 
        'display_name' => 'Project Detail', 
        'mandate' => '1' 
       }, 
       { 
        'db_feild_name' => 'project_name', 
        'type' => 'text', 
        'display_name' => 'Project Name', 
        'mandate' => '1' 
       }, 
       { 
        'db_feild_name' => 'project_date', 
        'type' => 'date', 
        'display_name' => 'Date' 
       } 
       ] 
     }, 
     { 
     'td' => [ 
       { 
        'db_feild_name' => 'issue_name', 
        'type' => 'text', 
        'display_name' => 'Name', 
        'mandate' => '1' 
       }, 
       { 
        'db_feild_name' => 'last_name', 
        'type' => 'text', 
        'display_name' => 'last Name', 
        'mandate' => '1' 
       }, 
       { 
        'db_feild_name' => 'age', 
        'type' => 'text', 
        'display_name' => 'Age' 
       } 
       ] 
     } 
    ], 
    'Table_Header' => 'test_table2', 
    'Title' => 'i am table' 
    } 
} 

回答

0

說明: $table點,

{ 
    'tr' => [..], 
    'Table_Header' => 'test_table2', 
    'Title' => 'i am table' 
} 

$tr點,

{ 
    'td' => [..] 
}, 

$td點,

{ 
    'db_feild_name' => 'project_details', 
    'type' => 'texta', 
    'display_name' => 'Project Detail', 
    'mandate' => '1' 
}, 

假設你的散列是%h

for my $table (values %{ $h{"form"} }) { 
    # print <table> 
    print $table->{"Table_Header"}, $table->{"Title"}; 

    for my $tr (@{ $table->{"tr"} }) { 
    # print <tr> 

    for my $td (values %$tr) { 
     # print <td> 
     print $td->{"db_feild_name"}; # type,display_name,etc 
     # print </td> 
    } 

    # print </tr> 
    } 

    # print </table> 
}