在 IO::Path 中§

请参阅方法 chdir的上下文中的主要文档 in context

multi method chdir(IO::Path:D: IO $path|c)
multi method chdir(IO::Path:D: Str() $path:$d = True:$r:$w:$x)

与名称相反,.chdir 方法不会更改任何目录,而只是将给定的 $path 与调用者连接,并返回结果 IO::Path。可以通过提供 :d:r:w:x Bool 命名参数来执行可选文件测试;当设置为 True 时,它们将分别执行 .d.r.w.x 测试。默认情况下,只有 :d 设置为 True

在独立例程中§

请参阅子例程 chdir的上下文中的主要文档 in context

sub chdir(IO() $path:$d = True:$r:$w:$x --> IO::Path:D)

$*CWD 变量的值更改为提供的 $path,并可以选择确保新路径通过多个文件测试。注意:此例程不会更改进程的当前目录(请参阅 &*chdir)。

如果成功,则返回表示新 $*CWDIO::Path。如果失败,则返回 Failure 且不更改 $*CWD$path 可以是任何具有 IO 方法的对象,该方法返回 IO::Path 对象。可用的文件测试有

  • :d — 检查 .d 返回 True

  • :r — 检查 .r 返回 True

  • :w — 检查 .w 返回 True

  • :x — 检查 .x 返回 True

默认情况下,只执行 :d 测试。

chdir         '/tmp'# change $*CWD to '/tmp' and check its .d is True 
chdir :r:w'/tmp'# … check its .r and .w are True 
chdir '/not-there';   # returns Failure 

请注意,以下结构是一个错误

# WRONG! DO NOT DO THIS! 
my $*CWD = chdir '/tmp/';

请改用 indir