while ($$buffref =~ s/^(.*)\n//) { print "$1"; } #### while ($$buffref =~ s/([^\n]+)\n//) { print "$1\n"; $$buffref =~ s/^\n//; } #### while ( (my $pos = index($$buffref, "\n")) >= 0 ) { print substr($$buffref, 0, $pos + 1); substr($$buffref, 0, $pos + 1, ''); }