That's wrong in this specific case. Here, you have a Windows file with "\r\n" line ends. Under Unix, the chomp command will remove only the "\n" part, but not the "\r". Using chomp a second time will not remove the "\r" under Unix. So the printing goes back to line start and the three !!! overwrite the beginning of the line.
in reply to Re^3: Printing a String (TOO stupid?)
in thread Printing a String (TOO stupid?)
The best solution here is to remove the "\r":
$line =~ s/\r//g;
$line =~ s/[\r\n]//g;