use warnings; #use strict; use Data::Dumper; while () { @off = split( /' '/, $_ ); %find = ( "start" => $off[0], "stop" => $off[1] ); my $hash_ref = \%find; my @official = []; push @official, $hash_ref; print Dumper(\@official); } __DATA__ 1234 2345 1234 2345 3345 4456 #### $VAR1 = [ [], { 'stop' => undef, 'start' => '1234 2345 ' } ]; $VAR1 = [ [], { 'stop' => undef, 'start' => '1234 2345 ' } ]; $VAR1 = [ [], { 'stop' => undef, 'start' => '3345 4456 ' } ];