Perl脚本渗透到子目录

时间:2014-02-03 23:40:39

标签: perl perl-module

我有很长的子目录列表,例如C0 / C1 / C2 ... C354。它单独包含各自的文件。我试图更改目录的所有权(而不是目录中的文件)。这就是我写的:

#!/usr/bin/perl -w
use strict;
use File::Find;

my @directories;
find sub{
    print "$File::Find::name";
    print "\n";
    return unless -d;
    next if (m/^\./);
    push @directories, $File::Find::name;
}, ".";

foreach my $file (@directories){
    my $cmd = qx |chown deep:deep $file|;
} 

它升高到C0 / C1并停止渗透到其他文件中。我的linux文件系统是否有问题,或者Perl中的File :: Find模块存在限制。请帮忙。谢谢。

1 个答案:

答案 0 :(得分:0)

给File :: Find :: find的函数里面没有循环,但你仍然在其中使用“next”。这将导致它在函数外部寻找一个循环,它可能会在File :: Find中找到它,从而导致不稳定的行为。 你可能想要一个“回归”而不是“下一个”。

应该有一个(运行时)警告。