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

您要访问的数据被封装在一个类型为 的对象中abc::TResultSet。这个类应该有一个 API 来允许访问它的成员。规避封装通常不是一个好主意,即使您可以很容易地做到这一点。


如果您不处理对象而只是嵌套数据结构,则可以检索所需的 arrayref,并取消引用它以循环它:

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 回答