DBIx-FetchAll.pm
package DBIx::FetchAll;
=head1 NAME
DBIx::FetchAll - provides sugar for DBI $sth
=cut
use warnings;
use strict;
=head1 METHODS
=head2 fetchall_hash
%table = $sth->fetchall_hash;
$table_ref = $sth->fetchall_hash;
C<%table> looks like this:
(
colA => [ $row1_colA, $row2_colA, ... ],
colB => [ $row1_colB, $row2_colB, ... ],
colC => [ $row1_colC, $row2_colC, ... ],
...
)
=cut
sub DBI::st::fetchall_hash {
my $sth = shift;
my @cols = @{$sth->{'NAME'}};
my %table = map { $_ => [] } @cols;
while(my @row = $sth->fetchrow_array) {
push @{$table{$_}}, shift @row for(@cols);
}
wantarray ? %table : \%table;
}
=head1 AUTHOR
Jan Henning Thorsen
=cut
1;