IO::File - 为文件句柄提供对象方法
use IO::File;
my $fh = IO::File->new();
if ($fh->open("< file")) {
print <$fh>;
$fh->close;
}
my $fh = IO::File->new("> file");
if (defined $fh) {
print $fh "bar\n";
$fh->close;
}
my $fh = IO::File->new("file", "r");
if (defined $fh) {
print <$fh>;
undef $fh; # automatically closes the file
}
my $fh = IO::File->new("file", O_WRONLY|O_APPEND);
if (defined $fh) {
print $fh "corge\n";
my $pos = $fh->getpos;
$fh->setpos($pos);
undef $fh; # automatically closes the file
}
autoflush STDOUT 1;
IO::File
继承自 IO::Handle
和 IO::Seekable
。它扩展了这些类,提供了特定于文件句柄的方法。
创建一个 IO::File
对象。如果它接收任何参数,则将这些参数传递给 open
方法;如果打开失败,则销毁该对象。否则,它将返回给调用者。
创建一个 IO::File
对象,该对象以读写模式打开一个新创建的临时文件。在支持此功能的系统上,临时文件是匿名的(即,它在创建后被解除链接,但保持打开状态)。如果无法创建或打开临时文件,则销毁 IO::File
对象。否则,它将返回给调用者。
open
接受一个、两个或三个参数。使用一个参数时,它只是内置 open
函数的前端。使用两个或三个参数时,第一个参数是文件名,可能包含空格或其他特殊字符,第二个参数是打开模式,可以选择后跟文件权限值。
如果 IO::File::open
接收 Perl 模式字符串(">","+<" 等)或 ANSI C fopen() 模式字符串("w","r+" 等),它将使用基本 Perl open
运算符(但会保护任何特殊字符)。
如果IO::File::open
被赋予一个数字模式,它会将该模式和可选的权限值传递给Perl的sysopen
操作符。权限默认为0666。
如果IO::File::open
被赋予一个包含:
字符的模式,它会将所有三个参数传递给三参数open
操作符。
为了方便起见,IO::File
会从Fcntl模块导出O_XXX常量,如果该模块可用。
binmode
在底层的IO
对象上设置binmode
,如perldoc -f binmode
中所述。
binmode
接受一个可选参数,即传递给binmode
调用的层。
一些操作系统可能会在目录上执行IO::File::new()
或IO::File::open()
而不会出现错误。这种行为不可移植,不建议使用。建议使用opendir()
和readdir()
或IO::Dir
。
perlfunc, "I/O操作符" 在perlop中, IO::Handle, IO::Seekable, IO::Dir
源自Graham Barr <[email protected]>的FileHandle.pm。