perl readdir函数详解 获取目录下文件
2013年12月30日Perl基础 共 763字 字号小中大暂无评论 阅读 4,384 次
readdir函数从一个用 opendir 打开的目录句柄读取目录记录也就是文件名。用法如下:
readdir DIRHANDLE
在标量环境中,readdir函数返回下一个目录记录,否则,它返回undef。在列表环境中,它返回在该目录中所有剩下的记录,如果剩下没有记录了,那么这个返回可能是一个空列表。比如:
opendir(THISDIR,".")ordie"serious dainbramage: $!";
@allfiles = readdir THISDIR;
closedir THISDIR;
print"@allfiles\n";
上面的代码在一行里打印出当前目录的所有文件。如果你想避免“.”和“..”记录,使用下面其中的一条:
@allfiles = grep{$_ ne'.'and$_ ne'..'}readdir THISDIR;
@allfiles = grep{not/^[.][.]?\z/}readdir THISDIR;
@allfiles = grep{not/^\.{1,2}\z/}readdir THISDIR;
@allfiles = grep!/^\.\.?\z/, readdir, THISDIR;
为了避免所有 .* 文件:
@allfiles = grep!/^\./, readdir THISDIR;
只拿出文本文件:
@textfiles = grep -T, readdir THISDIR;
不过我们再看看最后一个例子,因为如果readdir的结果不在当前目录里,那么我们需要在它的结果上把目录部分粘回去——象这样:
opendir(THATDIR, $path)ordie"can't opendir $path: $!";
@dotfile = grep{/^\./&&-f}map{"$path/$_"}readdir(THATDIR);
closedir TH
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。