use strict; use warnings; use Data::Dumper; my @data = ( [ "JOHN JR", "10/30/2011", "Main Street", ], [ "JOE DOE", "11/30/1999", "Broke Street", ], [ "MARY DEE", "06/01/2014", "Pearl Street", ], ); my @AoH; for my $row (@data) { push @AoH, { NAME => $row->[0], DOB => $row->[1], ADDR => $row->[2]}; } print Dumper \@AoH;