in reply to Perl::Critic says don't modify $_ in list functions and other things
Geez. At the first block of code, why not:
UPDATE: I have found some rare issues using chomp() in multi-platform situations. chomp() does a great job when dealing with files generated upon that particular platform. I have written code that is tested on my Windows box and on a Unix box and then a user uses an old Mac to edit the file. chomp() usually works, but if old Mac formatting is allowed, that is not sufficient. To be honest, the last time I got an error report involving this, I told the old Mac user to set his editor to save files as DOS format. I did not change my code to allow old Mac.my @list = map { s/\r\n$//; $_} <$fh>; my @uc_list = map { s/\r\n$//; uc $_; $_} <$lc_fh>; my @split_list = map { s/\r\n$//; split(/\|/, $_); [@$_] } <$piped_fh> +;
The easiest way to make sure that you delete all of the potential \r \n characters is to remove all white space at the end of the line. I like the suggestion from ikegami of s/\s+\z//. That does have a potential issue with a tab separated line containing a blank field at the end of the line.
In Section
Seekers of Perl Wisdom