为什么我可以打开undef?

时间:2013-11-22 21:56:46

标签: perl file-io undefined

以下不会死:

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。

1 个答案:

答案 0 :(得分:10)

请参阅perldoc -f open

  

作为特殊情况,三参数形式具有读/写模式和   第三个参数是undef

open(my $tmp, "+>", undef) or die ...
     

打开一个匿名临时文件的文件句柄。