快速提示:我一直被這個問題困住了好幾天,我不一定希望找到答案,但任何可能「啓發」我的幫助。我還想提一提,我是Perl的初學者,所以我的知識並不是很多,在這種情況下,遞歸不是我的特長。這裏有雲:PERL - 從目錄/子目錄/ ..中提取文件的問題?
我想什麼我的Perl腳本做的是以下幾點:
- 採取目錄作爲參數
- 進入已傳遞的目錄及其子目錄找到一個* .xml文件
- 將找到的* .xml文件的完整路徑存儲到數組中。
下面是我到目前爲止,但我沒有設法使其工作代碼:
#! /usr/bin/perl -W
my $path;
process_files ($path);
sub process_files
{
opendir (DIR, $path) or die "Unable to open $path: $!";
my @files =
# Third: Prepend the full path
map { $path . '/' . $_ }
# Second: take out '.' and '..'
grep { !/^\.{1,2}$/ }
# First: get all files
readdir (DIR);
closedir (DIR);
for (@files)
{
if (-d $_)
{
push @files, process_files ($_);
}
else
{
#analyse document
}
}
return @files;
}
任何人有任何線索指向我朝着正確的方向嗎?或者更簡單的方法來做到這一點?
謝謝 sSmacKk:d
1.您可以使用某些東西來初始化'$ path',對吧? 2.爲什麼還要用'readdir'來打算逐個迭代條目呢?如果你把它們全部放入數組中?使用'glob'或者「跳過收集到數組」部分。 3.什麼是失敗? –