my $query = "SELECT name, ip, email from people"; my $sth = $dbh->prepare($query); $sth->execute(); my @records =(); my %data =(); while (my @row = $sth->fetchrow_array()) { $data{name} = $row[0]; $data{ip} = $row[1]; $data{email} = $row[2]; push @records, \%data; } for my $record (@records) { for (qw(name ip email)) { print "$_ => $record->{$_}\n" } print "\n" }