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