$dir_path = (-d ("./abc/dir-\d.\d.\d")) ?
glob("./abc/dir-\d.\d.\d/my-dir*") : "my-dir-doesnot-exists";
这是一个有效的glob选项吗?我可以使用\ d来匹配目录路径中的数字吗?
如果“./abc/dir-#.#.#”存在(其中#是任何数字),那么答案 0 :(得分:2)
您在标量上下文中调用glob
的两个实例(但不是迭代器),这是非常错误的。例如,
my $foo = glob("a");
my $bar = glob("a");
say $foo // "[undef]"; # a
say $bar // "[undef]"; # [undef]
glob语言与正则表达式语言完全不同。 \d
无法工作,但[0123456789]
会。
my @dir_paths = glob("./abc/dir-[0123456789].[0123456789].[0123456789]/my-dir*");
die "No match!" if !@dir_paths;
die "Too many matches!" if @dir_paths > 1;
my $dir_path = $dir_paths[0];