use strict; open FH, "foo" or die "Can't open: $!"; my @recs; foreach my $line () { chomp $line; push @recs, [ split /,?\s/, $line ]; } close FH or die "Can't close: $!"; open FH, ">foo.new" or die "Can't open: $!"; foreach my $line_ref (@recs) { my $line = join '|', @$line_ref[0 .. 4]; print FH $line, "\n"; } close FH;