在独立例程中§

请参阅主要文档 在上下文中 了解 sub &*chdir

PROCESS::<&chdir> = sub (IO() $path --> IO::Path:D{ }

$*CWD 变量的值更改为提供的 $path,并将进程的当前目录设置为 $path.absolute 的值。注意:在大多数情况下,您需要使用 chdir 例程。

返回一个 IO::Path,表示成功时的新的 $*CWD。如果失败,则返回 Failure,并保持 $*CWD 不变。$path 可以是任何具有返回 IO::Path 对象的 IO 方法的对象。

请注意,与常规 chdir 不同,没有参数指定要执行的文件测试。

&*chdir('/tmp');  # change $*CWD and process's current directory to '/tmp' 
&*chdir('/not-there'); # returns Failure 

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

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

改为使用以下内容;或者,如果您不需要更改进程的当前目录,请参阅 indir

temp $*CWD;
&*chdir('/tmp');