Perl chdir 因 glob 模式而失败

Pau*_* IT 0 directory perl glob chdir

我正在尝试在我的 perl 脚本中执行 cd。我正在使用以下命令:

chdir "/home/test/test1/test2/perl*";
Run Code Online (Sandbox Code Playgroud)

perl*值实际上是perl_0122_2044,但这个值可能会有所不同。

上面的chdir命令cd对路径没有作用。难道我做错了什么?

Tim*_*and 5

chdir不接受*和 参数中的其他扩展字符。使用glob或类似的东西来提取单个目录,然后chdir到那个目录。例如,这会将目录更改为/home/test/test1/test2/perl*它找到的第一个:

$dir = (glob "/home/test/test1/test2/perl*")[0];
# only change dir if any dir was found: 
if (-d $dir) {
    # fail if cannot change dir (or, even better, use autodie):
    chdir $dir or die "Could not change to $dir: $!";
}
Run Code Online (Sandbox Code Playgroud)