Recursive Find File In Directory
发布时间:2020-12-15 21:11:22 所属栏目:大数据 来源:网络整理
导读:今天PHP站长网 52php.cn把收集自互联网的代码分享给大家,仅供参考。 #!/usr/bin/perl -wuse utf8;use strict;use warnings;sub lsrp { my ($dir,$sub,$ext,$print) = @_; my @dirs = ($dir); my @rets = (); while (my $
以下代码由PHP站长网 52php.cn收集自互联网 现在PHP站长网小编把它分享给大家,仅供参考 #!/usr/bin/perl -w use utf8; use strict; use warnings; sub lsrp { my ($dir,$sub,$ext,$print) = @_; my @dirs = ($dir); my @rets = (); while (my $dir = pop(@dirs)) { local *DH; if (!opendir(DH,$dir)) { warn "Cannot opendir $dir: $! $^E"; next; } foreach (readdir(DH)) { if ($_ eq '.' || $_ eq '..') { next; } my $file = $dir.$_; if (!-l $file && -d _) { $file .= '/'; push(@dirs,$file) if $sub; } elsif ($file =~ /.Q$extE$/) { push @rets,$file; $print->($file) if defined($print); } } closedir(DH); } return @rets; } my $find_dir = shift @ARGV; my $find_ext = shift @ARGV; my $find_sub = shift @ARGV; if (!defined($find_dir)) { help(); exit; } if (!defined($find_ext)) { help(); exit; } if (!defined($find_sub)) { $find_sub = 0; } if ($find_dir =~ /[^/]$/) { $find_dir .= '/'; } $find_ext =~ s/^.//; sub p { print (shift . "n"); } my @files = lsrp($find_dir,$find_sub,$find_ext,&;p); if ($#files <= 0) { print "Found nothing.n"; exit; } #print "Found " . $#files . ($#files <= 1 ? " file" : " files") . "n"; # #foreach (@files) { # print " -> ".$_."n"; #} exit; sub help { print "Usage:n"; print "t$0".' [directroy] [extension] [recursion]'."n"; print "Sample:nt$0 . pl 1 n"; } 以上内容由PHP站长网【52php.cn】收集整理供大家参考研究 如果以上内容对您有帮助,欢迎收藏、点赞、推荐、分享。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |