use strict; my $line="\none1\r\ntwo2\nthree3\nend\n"; my $i=0; while(1) { if ($line =~ /\G(\r\n|\r|\n)/gc) { $i++; print "newLine $i\n"; next; } if ($line =~ /\G[^\r\n]+/gc) { print "line : $&\n"; next; } last; }