in reply to Re^4: 5.8.8 stat and file test fails
in thread 5.8.8 stat and file test fails

It looks like a trailing carriage return. Rip it out this way:

$new_file =~ tr/\r//d;

You could get rid of every unprintable character like this:

$new_file =~ s/[:^print:]//g;

Replies are listed 'Best First'.
Re^6: 5.8.8 stat and file test fails
by Anonymous Monk on Aug 19, 2008 at 15:16 UTC
    Safer I think just trailing :)
    s~[:^print:]+?$~~;
Re^6: 5.8.8 stat and file test fails
by emwdrich (Initiate) on Aug 19, 2008 at 15:37 UTC
    $new_file =~ tr/\r//d;
    This line took care of the issue. Thanks for the help.

      I stared at this for a while before the penny dropped...

      ...so, the lesson here is that chomp is a potential GOTCHA... (which most of the time is hidden from us by PerlIO)

      ... in particular, on LF line terminated systems, network text with CRLF line endings will only have part of the line ending removed by chomp -- unless $/ is set to CRLF. [And on CR line terminated systems chomp (by default) does nothing with CRLF !]

      Unless someone has a better idea, s/\s+$// looks like a good replacement for chomp, with the small bonus of stripping any trailing spaces and tabs (and FF).

      tr/\r\n//d looks a bit fierce -- since it will, of course, remove any number of \r or \n from anywhere in the string, which may or may not be what one wants... [Not to mention the ambiguous nature of \n !]

        ambiguous nature of \n
        \n is unambiguous :) Confusion stems because I/O systems encode \n differently for "text" mode