But you are working on Unix/Linux and so your chomp removes the LF but not the CR.
By default, on all platforms, chomp only ever removes "\n" (linefeed) never "\r" (carriage return). In particular, even on Windows, chomp (by default) does not remove "\r". The reason that this doesn't cause a problem is because if you haven't used binmode on Windows, then reading from a file will transform "\r\n" into "\n".
I find that it is always best to ignore trailing whitespace1 (too many things can add it in and most things don't let you know that it is there). So I almost always use s/\s*$// instead of chomp. This practice prevents the above type of problem as well.
1 Which is one reason why I no longer ever user <<HERE_DOCs, since they can break in the face of trailing whitespace.
- tye
In reply to Re^2: sprintf is printing unexepected output (chomp)
by tye
in thread sprintf is printing unexepected output
by thezip
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |