http://qs321.pair.com?node_id=1178389


in reply to Remove the first word for each lines from a text file

Expanding on what Corion said, you second while loop is what is causing the problem. Instead of

print $out $_ while s/^\s*\S+\s*//;

get rid of the inner while:

s/^\s*\S+\s*//; print $out;