What is especially insiduous and hard to track, is when a file exists with the malformed name. Now that is a real pain in the butt.
Here are some common ways of malforming filenames:
1 - path missing. This often occurs when using the result directly from readdir or File::Find::find without adding the path.
2 - linebreak in filename. This typically occurs when newbies capture the output of `ls` or `dir` instead of using readdir as they should and forget to chomp.
3 - Wrong case. Perl, like Unix, is case sensitive, but users raised on Windows and Mac systems tend to forget this.
4 - Concatenating a file name in the wrong way, for example:
This will result in the nonexistent filename /usr/home/jonesfoo.txt, but is hard to catch.my $path = '/usr/home/jones'; my $file = 'foo.txt'; my $filename = $path . $file.
5 - Using unescaped backslashes on Windows (extremely common). Filenames like "C:\terry\new.html" are a common source of Windows/Perl nightmares (Perl reads it as "C: TAB erry NEWLINE ew.html"). Use ordinary slashes under Windows and save yourself endless hassle as well as making your code more portable as a side effect.
I hope this helps someone.
Regards,
Helgi Briem
In reply to Re: Re: Re: Moving Log files remotely
by helgi
in thread Moving Log files remotely
by Anonymous Monk
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |