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
이것은 이미 작성한 코드를 사용하는 것 중 하나입니다. File :: Find는 핵심 Perl이거나 File :: Next는 CPAN을 통해 쉽게 설치됩니다. –