my @fields = qw(name surname); my $select = sprintf 'SELECT %s FROM clients', join(',', @fields); my @arr_of_hashes = map {my %hash; @hash{@fields} = @$_; \%hash} @{ $dbh->selectall_arrayref($select) };