I think you'll have to settle for a selectall_hashref(), which is a hash of hashes. You could force it into an array of hashes, but it would be an expense with no gain. If you just want to foreach through it, choose values( %{ $retval } ) and be happy.
-Paul
Comment on Re: DBI: Build array of hashes with fetched results?
Nope, the OP doesn't have to settle for selectall_hashref. You can get either an AoA or an AoH with selectall_arrayref. See my reference in my reply to the OP.