数组列名称的Perl哈希作为键

时间:2013-02-07 23:36:13

标签: arrays perl hash

我正在尝试使用sql查询的结果创建数组哈希: 例如

列1:

1                                         
2
3
4

列2:

A 
B 
C 
D

期望的结果:

my %by_col = (
    'Column1'=>['1','2','3','4'],
    'Column2'=>['A','B','C','D'],
);

我可以使用以下方法将结果作为哈希数组得到:

while ($hash_ref = $sth->fetchrow_hashref()) {
    push @$hash_array_ref, { %$hash_ref };
}

但无法想象反过来。

谢谢!

1 个答案:

答案 0 :(得分:1)

while (my $row = $sth->fetchrow_hashref()) {
   for my $col_name (keys(%$row)) {
      push @{ $by_col{$col_name} }, $row->{$col_name};
   }
}