my $directory = shift @_;
my @dh;
my @files;
opendir (my $dh, $directory) or die "Couldn't open dir '$directory' : $!";
foreach my $file(readdir $dh) {
if( -f $file =~ /\.htm$/){
push(@files,$file);
}
elsif(-d $file){
push(@dh,$file);
$dh = shift @dh;
}
closedir ($dh);
}
我试图让我的脚本采用路径,例如 DATA/ (这是成功的),但是我希望我的脚本扫描该目录和子目录,然后如果有任何文件匹配,它将存储在@files
.
我正在尝试使用循环扫描所有子文件夹,例如
elsif(-d $file){
push(@dh,$file);
$dh = shift @dh;
}
在这个语句中$dh
会得到一个新的子目录名来扫描
但是我得到Segmentation fault