You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
AFAIK, when open fails, autodie's intends to show an error message with the name of the file that could not be opened:
Error message from the following script should be "Can't open('does not exist'): ..."
$ cat 0.pl
#!/usr/bin/env perluse autodie;
use strict;
use warnings;
our$FILE = 'does not exist';
open FILE;
$ ./0.pl
Can't open('FILE'): No such file or directory at ./0.pl line 8
On OSX, dtruss shows:
xxxx/yyyyyy: open("does not exist\0", 0x0, 0x1B6) = -1 Err#2
On Linux, strace shows:
open("does not exist.txt", O_RDONLY) = -1 ENOENT (No such file or directory)
To my dismay, I found that perldoc -f open in most recent versions of Perl don't have this, but versions as recent as 5.18.2 explain what happens when open is invoked with a single argument:
If EXPR is omitted, the global (package) scalar variable of the same name as the FILEHANDLE contains the filename.
Migrated from rt.cpan.org#99402 (status was 'new')
Requestors:
From nanis@runu.moc.invalid on 2014-10-09 20:36:53:
AFAIK, when open fails, autodie's intends to show an error message with the name of the file that could not be opened:
Error message from the following script should be "Can't open('does not exist'): ..."
On OSX, dtruss shows:
On Linux, strace shows:
To my dismay, I found that perldoc -f open in most recent versions of Perl don't have this, but versions as recent as 5.18.2 explain what happens when open is invoked with a single argument:
For other info, see:
http://blog.nu42.com/2014/10/a-bug-in-perls-autodie.html
http://blog.nu42.com/2014/10/why-was-documentation-for-single.html
Clearly,
open FILENAME
cannot be recommended, so I am putting very low priority on this, but FYI.Thank you,
-- Sinan
The text was updated successfully, but these errors were encountered: