2012-09-04 2 views
0

데이터 구조 (아래에 있음)가 있으면 언제든지 가장 간단한 형식의 요소에 액세스하는 방법을 알려주십시오. Hash of Hash 나 Array of Arrays 또는 다른 어떤 것을 구현하는 가장 좋은 방법은 무엇입니까? 배열에 너무 많은 요소가되지 않습니다, 유일한 문제는이 공식 자원이 펄 데이터 구조 요리 책 (perldoc perldsc)는 배열Perl에서 다차원 배열 만들기, 채우기 및 액세스

%Array = (

    'Item0' => { 
     'Name' => 'Item0_Name', 
     'Attribs' => { 
      'Attr1' => { 
       'Name' => 'Attr1_Name', 
       'Num' => 'Attr1_Num' 
      },  
      'Attr2' => { 
       'Name' => 'Attr2_Name', 
       'Num' => 'Attr2_Num' 
      }  
     }  
    }, 

    'Item1' => { 
     'Name' => 'Item1_Name', 
     'Attribs' => { 
      'Attr1' => { 
       'Name' => 'Attr1_Name', 
       'Num' => 'Attr1_Num' 
      },  
      'Attr2' => { 
       'Name' => 'Attr2_Name', 
       'Num' => 'Attr2_Num' 
      }  
     }  
    } 

); 
+4

['perldoc을 perldsc'] (http://perldoc.perl.org/perldsc.html) – Zaid

+0

는 해시 배열이 혼란 호출. – choroba

답변

2

의 자사의 멀티 레벨 종류이다.

표시된 데이터의 경우 OP에 표시된 키가 단순히 문자열 화 된 인덱스이므로 해시 레프 배열로 충분합니다. 같은 의견은 'Attribs'에 대한 적용

my @array = (
       { 
        'Name' => 'Item0_Name', 
        'Attribs' => [ 
            { 
             'Name' => 'Attr1_Name', 
             'Num' => 'Attr1_Num' 
            },  
            { 
             'Name' => 'Attr2_Name', 
             'Num' => 'Attr2_Num' 
            }  
           ], 
       }, 
       { 
        'Name' => 'Item1_Name', 
        'Attribs' => [ 
            { 
             'Name' => 'Attr1_Name', 
             'Num' => 'Attr1_Num' 
            },  
            { 
             'Name' => 'Attr2_Name', 
             'Num' => 'Attr2_Num' 
            }  
           ], 
       }, 
      ); 
관련 문제