my @data = ( [...], [...], ... ); # assume AoA foreach my $row (@data){ while(scalar(@$row) && ! $row->[-1]){ # if last item is blank pop @$row; #then remove it } my $city_state_zip_str = $->row[-1]; my $address_str = $row->[-2]; # parse those two vars w/regexp's here }