2012-07-29 63 views
-4

我是perl腳本的新手。我想搜索目錄「pqr」中名爲「abc」的每個文件夾,並將每個「abc」文件夾的路徑以文件名= pathOfABC的形式寫入單獨的文件(n.txt,其中n是整數)。任何人都可以給我一些提示嗎?如何使用perl搜索目錄中的文件夾

+2

Google/Bing今天工作嗎?你試圖給它一個鏡頭?向我們展示迄今的進展。 – 2012-07-29 06:25:29

+0

你是什麼意思「每個abc文件夾」?查看'readdir'函數。 – 2012-07-29 06:26:08

+2

我可以告訴你該文件夾的路徑,而無需運行程序。它是'pqr/abc' – Borodin 2012-07-29 09:01:39

回答

3

由於任務涉及遞歸,因此可以使用像File::Find這樣的模塊。

#!/usr/bin/env perl 

use strict; 
use warnings; 

use File::Find; 

my @files; 

sub wanted { 
    if (-d && $_ eq 'abc') { 
     push @files, $File::Find::name; 
    } 
} 

find \&wanted, 'pqr'; 

my $ctr = 1; 
for (@files) { 
    open my $fh, '>', "$ctr.txt" or die "Error opening file"; 
    print $fh $_; 
    $ctr++; 
} 
0

Path::Class::Rule模塊使得這樣的搜索非常簡潔。

代碼看起來像這樣。

use strict; 
use warnings; 

use Path::Class::Rule; 

my $rule = Path::Class::Rule->new->dir->name('abc'); 

print "$_\n" foreach $rule->all('pqr');