我想忽略'..'和'Rollback'子目录但是下面的代码不起作用。请建议。
if(-d $input) {
opendir (my $dh, $input) or die "Cannot opendir $input: $!";
while (my $dir = readdir($dh)) {
my $path_dir = File::Spec->catfile($input, $dir);
next unless (-d $path_dir && $dir =~ m/^(?![\.{2}|Rollback])/);
print "dir=$dir\n";
}
}
输出只显示一个子目录,但所需的输出应该是子目录加'。'
答案 0 :(得分:0)
您最有可能想要使用"非捕获标识符" ? 请尝试以下代码。
if(-d $input) {
opendir (my $dh, $input) or die "Cannot opendir $input: $!";
while (my $dir = readdir($dh)) {
my $path_dir = File::Spec->catfile($input, $dir);
next unless (-d $path_dir && $dir =~ m/^(?:([\.]{2}|Rollback))/);
print "dir=$dir\n";
}
}