Re: Perl 5.8.6 bug in open()?
- From: mritty@xxxxxxxxx (Paul Lalli)
- Date: Tue, 30 Oct 2007 07:47:25 -0700
On Oct 30, 8:33 am, goo...@xxxxxxxxx wrote:
# --- <the program> ----
my $fname = '/volumes/hd/home/kevin/file_test '; # note file ends
with a space character
print "Exists: <$fname>\n" if (-e $fname);
print "Is a file: <$fname>\n" if (-f $fname);
open(FH, $fname) or die "Can't open '$fname': $!";
close(FH) or die "Can't close '$fname': $!";
# --- <the output> ---
Processing file: file_test
Exists: <file_test >
Is a file: <file_test >
Can't open 'file_test ': No such file or directory at testopen.pl line
42.
# -- <the question> ---
Is this a known bug in Perl 5.8.6?
In my first response (which isn't showing up via Google Groups yet), I
referred to perldoc -f open. Here is the relevant passage from that
documentation:
The filename passed to 2-argument (or 1-argument)
form of open() will have leading and trailing
whitespace deleted, and the normal redirection
characters honored. This property, known as "magic
open", can often be used to good effect. A user
could specify a filename of "rsh cat file |", or you
could change certain filenames as needed:
$filename =~ s/(.*\.gz)\s*$/gzip -dc < $1|/;
open(FH, $filename) or die "Can't open $filename:
$!";
Use 3-argument form to open a file with arbitrary
weird characters in it,
open(FOO, '<', $file);
otherwise it's necessary to protect any leading and
trailing whitespace:
$file =~ s#^(\s)#./$1#;
open(FOO, "< $file\0");
Paul Lalli
.
- References:
- Perl 5.8.6 bug in open()?
- From: google
- Perl 5.8.6 bug in open()?
- Prev by Date: Re: Perl 5.8.6 bug in open()?
- Next by Date: Re: Include variables from external perl script
- Previous by thread: Re: Perl 5.8.6 bug in open()?
- Next by thread: Re: Perl 5.8.6 bug in open()?
- Index(es):
Relevant Pages
|