use strict; use warnings; use DBI; # assuming $dbh is a connected database handle my $result_ref = $dbh->selectall_arrayref("select field1, field2 from testtable"); if ($DBI::errstr) { print "An error was encountered in retrieving data : $DBI::errstr"; } foreach my $thisrow (@$result_ref) { my $field1 = sprintf "%06d",$thisrow->[0]; my $field2 = $thisrow->[1]; # do whatever you need to do with those values }