my ($share_hash, %share_hash, @fields); while (<>) { @fields = split(/\|/,$_,-1); $share_hash{$fields[$colhash{res_stay_id}]} = [@fields]; print Dumper(%share_hash); foreach my $share_item (keys %$share_hash) { my $row = $share_hash->{$share_item}; print STDOUT join("|", @$row), "\n"; } }