fileno perldoc的这一行是什么意思?

时间:2009-07-04 13:37:35

标签: perl

perldoc for fileno

  

通过open的新功能连接到内存对象的文件句柄可能会返回undefined,即使它们是打开的。

这是指一般打开的新式调用,还是打开的IO::Scalar样式调用?

1 个答案:

答案 0 :(得分:4)

这段代码似乎表明它只适用于open的IO :: Scalar版本。这可能是因为没有与文件句柄相关联的底层操作系统级别文件。

#!/usr/bin/perl

use 5.010;
use strict;
use warnings;

my $fakefile = "foo\nbar\nbaz\n";
open my $fake, "<", \$fakefile
    or die "could not open fakefile [$fakefile]: $!";

open my $script, "<", $0
    or die "could not open self for reading: $!";

print "fake: ", my_fileno($fakefile), "\nreal: ", my_fileno($script), "\n";

sub my_fileno {
    my $fileno = fileno shift;
    $fileno //= "undef";
    return $fileno;
}