表7-1 文件存取权限
使用sysopen进行 low-level 控制
sysopen(FH, $path, O_WRONLY|O_APPEND|O_CREAT, 0600) or die $!;
IO::File,Fcntl,Symbol,IO::Tee,IO::Handle
FileCache 缓存
File::Temp 临时文件
Inline::Files 自定义虚拟文件句柄
seek,tell,truncate
open(F, "+<", $infile) or die "can't read $infile: $!"; $out = ""; while () { s/DATE/localtime/eg; $out .= $_; } seek(F, 0, 0) or die "can't seek to start of $infile: $!"; print F $out or die "can't print to $infile: $!"; truncate(F, tell(F)) or die "can't truncate $infile: $!"; close(F) or die "can't close $infile: $!";
Fcntl,File::Lock,File::NFSLock
缓冲输出
use IO::Handle qw(autoflush);
IO::Select
open($fh, "<:raw:utf8", $filename); # read UTF-8 from the file open($fh, "<:encoding(shiftjis)", $filename); # shiftjis japanese encoding open(FH, "+<:crlf", $filename); # convert between CRLF and \n binmode($fh, ":raw:utf8"); binmode($fh, ":raw:encoding(shiftjis)"); binmode(FH, "<:raw:crlf"); binmode(HANDLE, ":raw"); # binary-safe binmode(HANDLE); # same as :raw binmode(HANDLE, ":raw :utf8"); # read/write UTF-8 binmode(HANDLE, ":raw :encoding(shiftjis)"); # read/write shiftjis
sysread,syswrite,sysseek
Tie::File,File::stat,File::Tail,File::Compare,Text::Diff
IO::Seekable
表9-2 文件测试符
utime,lstat
rewinddir,seekdir,telldir
File::Copy,DirHandle,File::Find,File::Path,File::Basename
Stat::lsMode,File::chmod,Cwd,Error
eval例子:
eval { func( ) }; if ($@) { warn "func raised an exception: $@"; }
没有评论:
发表评论