I have a input file which is a fixed line file (all along one line, no " \n or \r "). ################################################## Q. How would I separate each data type, to do the following; At @fields 490, insert \r (carriage return). So I want the input file, to look like below, is a few *LINES* of example of the input file after inserting \r: 168127407932117187M000001080m200107035eN/A 168148007947033647M200107015m2100000000n/a 168149807947023347M000200107m0000034500n/a 168150607947058268M200107015y13 00000000n/a ################################################## I want to do this so that the while loop does not stop after the first selection, and continues looping, for each line (once they are separated)! As the problem being at the moment is that the while loop stops at the first selection! ################################################## <snip> ################################################### open ISCD,"<CALL_SUMMARY_CHANGES4_5.HADES;21" or die "Cannot open CALL_SUMMARY_CHANGES4_5.HADES;21",$!; open NEW,">aaaa.pl"; while($line=<ISCD>){ chomp $line; @fields = split //, $line; printf NEW '%1.1s' x 44, @fields[0..33,290..299]; } close ISCD; close NEW; exit; [End of file] ################################################## Any help would be much appreciated! Kind Regards, GD