0

私はデータ構造を持っています(以下に示します)。入力する方法と、必要なときにいつでも最も単純な形式で要素にアクセスする方法を教えてください。Hash of Hashes や Array of Arrays など、実装するのに最適な方法はどれですか? 配列にはあまり多くの要素はありません。唯一の問題は、その配列がマルチレベルであることです。

%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

1 に答える 1

2

このための公式リソースは、Perl Data Structure Cookbook ( perldoc perldsc) です。

表示されているデータの場合、OP に表示されているキーは単に文字列化されたインデックスであるため、ハッシュリファレンスの配列で十分なようです。同じコメントが「属性」にも当てはまります。

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'
                                  }       
                               ],
              },
           );
于 2012-09-04T07:39:37.140 に答える