#My Input text file: dec.x.bc.00041669 1067503 1067501 dec.x.bc.00019580 1067503 1067501 dec.x.bc.00016113 1067503 1067501 #I want my Output textfile: dec.x.bc.00016113 1067503 1067501 dec.x.bc.00019580 1067503 1067501 dec.x.bc.00041669 1067503 1067501 #this is my code @filenames=@ARGV; foreach my $file (@filenames) { open (INFILE, $file) || die ("Can't open file $file$!"); chomp(my @resultArray = map { /^\s*$/ ? () : $_ } ); open(OUTFILE, ">$file.formatted"); sort { $a<=>$b } @resultArray; print Dumper \@resultArray; foreach my $line(@resultArray){ my ($ID, $ans1, $ans2) = split( / /, $line ); #do something; print OUTFILE "$lineResults\n"; } close OUTFILE; }