以下不会死:
open my $in, '<', undef or
die q{couldn't open undef};
print <$in>;
这个也不是:
open my $out, '>', undef or
die q{couldn't open undef};
print $out 'hello';
我不明白为什么这些都没有死。开
undef
怎么可能成功呢?
我发现这个的原因是和我一起工作的一个人做了这个:
open my $out, '>', $ARGV[0] or die q{couldn't open $ARGV[0]};
他认为如果没有传入参数,这会杀死脚本(我知道这不是最干净的方法,但我不认为它行不通)。
我正在使用草莓5.16.1。
参见
perldoc -f open
:
作为一种特殊情况,具有读/写模式的三参数形式和 第三个参数是
:undef
open(my $tmp, "+>", undef) or die ...
打开匿名临时文件的文件句柄。