如何使用perl在目录中搜索文件夹

时间:2012-07-29 06:19:22

标签: perl

我是perl脚本的新手。我想搜索名为" abc"的每个文件夹。在目录" pqr"并写下每个" abc"的路径。文件夹到一个单独的文件(n.txt,其中n是一个整数),格式为filename = pathOfABC。有人可以给我一些暗示吗?

2 个答案:

答案 0 :(得分:4)

由于任务涉及递归,因此您可以使用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++;
}

答案 1 :(得分: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');