0

以下は、の出力ですDumper($resultSet);

$VAR1 = bless( {
                 'rows' => [
                             bless( {
                                      'columns' => [
                                                     bless( {
                                                              'columnName' => 'TABLESCHEMANAME',
                                                              'columnValue' => 'FROM_PERL'
                                                            }, 'abc::TColumn' )
                                                   ]
                                    }, 'abc::TRow' )
                           ]
               }, 'abc::TResultSet' );

columns配列に対するイテレータの使用方法。

4

1 に答える 1

3

アクセスするデータは、 type のオブジェクトにカプセル化されていますabc::TResultSet。このクラスには、そのメンバーへのアクセスを許可する API が必要です。たとえ簡単にカプセル化を回避できたとしても、カプセル化を回避することは一般に悪い考えです。


オブジェクトを扱っておらず、ネストされたデータ構造だけを扱っている場合は、必要な配列参照を取得し、それを逆参照してループすることができます。

for my $row (@{ $VAR1->{rows} }) {
  for my $cell (@{ $row->{columns} }) {
    my ($name, $value) = @{$cell}{qw/columnName columnValue/}; # a hash slice
    ...;
  }
}
于 2013-04-18T08:27:26.970 に答える