温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

perl readdir函数详解 获取目录下文件

发布时间:2020-07-18 17:55:03 来源:网络 阅读:7816 作者:jackwxh 栏目:开发技术

perl readdir函数详解

2013年12月30日  Perl基础  共 763字 字号 小 中 大  暂无评论  阅读 4,384 次

readdir函数从一个用 opendir 打开的目录句柄读取目录记录也就是文件名。用法如下:

  1. readdir DIRHANDLE

在标量环境中,readdir函数返回下一个目录记录,否则,它返回undef。在列表环境中,它返回在该目录中所有剩下的记录,如果剩下没有记录了,那么这个返回可能是一个空列表。比如:

  1. opendir(THISDIR, ".") or die "serious dainbramage: $!";

  2. @allfiles = readdir THISDIR;

  3. closedir THISDIR;

  4. print "@allfiles\n";

上面的代码在一行里打印出当前目录的所有文件。如果你想避免“.”和“..”记录,使用下面其中的一条:

  1. @allfiles = grep { $_ ne '.' and $_ ne '..' } readdir THISDIR;

  2. @allfiles = grep { not /^[.][.]?\z/ } readdir THISDIR;

  3. @allfiles = grep { not /^\.{1,2}\z/ } readdir THISDIR;

  4. @allfiles = grep !/^\.\.?\z/, readdir, THISDIR;

为了避免所有 .* 文件:

  1. @allfiles = grep !/^\./, readdir THISDIR;

只拿出文本文件:

  1. @textfiles = grep -T, readdir THISDIR;

不过我们再看看最后一个例子,因为如果readdir的结果不在当前目录里,那么我们需要在它的结果上把目录部分粘回去——象这样:

  1. opendir(THATDIR, $path) or die "can't opendir $path: $!";

  2. @dotfile = grep { /^\./ && -f } map { "$path/$_" } readdir(THATDIR);

  3. closedir TH


向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI