Not a HASH reference at... this line: my $name = $row->{NAME}; #### ... sub process { my $arrayref = shift; while ( my @data = splice( @{ $arrayref }, 0, 100 ) ) { foreach my $row (@data) { my $name = $row->{NAME}; my $year = $row->{YEAR}; print "$name and $address\n"; } } } __DATA__ $VAR1 = [ { 'NAME' => 'LAST PAUL', 'YEAR' => '2000', }, { 'NAME' => 'DEMARCO R', 'YEAR' => '1960', }, { 'NAME' => 'JOE M', 'YEAR' => '1981', }, { 'NAME' => 'LOU MARY', 'YEAR' => '1948', }, ];