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;
In Section
Seekers of Perl Wisdom