Subject: | autodie fails to deduce filename for open FILEHANDLE |
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 perl
use 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.
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