要求:获取输入目录下符合以下条件的目录个数
- 目录可以有任何名称,除了“DIR1”、“DIR2”、“DIR3”等。
- “DIR1”、“DIR2”、“DIR3”等内的目录不需要计算在内
- 只需要目录数量,不需要文件
use strict;
use File::Find;
my ($inputdir) = @ARGV;
my (@branches, $branch, $directory, @directories);
my $count = 0;
find(\&wanted, $inputdir);
while ( defined($directory = shift @directories) ) {
if (-d $directory){
next if ($directory =~ "DIR1" || $directory =~ "DIR2" || $directory =~ "DIR3");
push @branches, $directory;
$count++;
}
}
print "Total number of directories: $count \n";
sub wanted{
push @directories, $File::Find::name;
return @directories;
}
这段代码提供了所需的输出,但需要花费大量时间。
请提出通过改进此代码来减少时间的方法。