如何使用Perl列出目录中的所有文件?
发布时间:2020-12-15 21:11:51 所属栏目:大数据 来源:网络整理
导读:我通常使用类似的东西 my $dir="/path/to/dir";opendir(DIR,$dir) or die "can't open $dir: $!";my @files = readdir DIR;closedir DIR; 或者有时候我使用glob,但无论如何,我总是需要添加一两行来过滤掉.这是非常烦人的. 你通常如何去做这个常见的任务? 解
我通常使用类似的东西
my $dir="/path/to/dir"; opendir(DIR,$dir) or die "can't open $dir: $!"; my @files = readdir DIR; closedir DIR; 或者有时候我使用glob,但无论如何,我总是需要添加一两行来过滤掉.这是非常烦人的. 解决方法
我通常会使用glob方法:
for my $file (glob "$dir/*") { #do stuff with $file } 这样工作正常,除非目录中有很多文件.在这些情况下,您必须在while循环中切换回readdir(将readdir放在列表上下文中与glob类似): open my $dh,$dir or die "could not open $dir: $!"; while (my $file = readdir $dh) { next if $file =~ /^[.]/; #do stuff with $file } 通常,如果我正在一个目录中读取一堆文件,我想以递归方式读取它们.在这些情况下,我使用File :: Find: use File::Find; find sub { return if /^[.]/; #do stuff with $_ or $File::Find::name },$dir; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |