my %results = (); my $query = qq(SELECT id, col1, col2 FROM some_table); my $sth = $dbh->prepare($query); while (my $rh_row = $sth->fetchrow_hashref) { my $id = delete $rh_row->{id}; $results{$id} = { %$rh_row }; }