这一行运行名为 “git” 的程序,并将 “git” 和 “status” 传递给它的命令行。它将使用 设置找到该 git 程序。
如果您想通过向 shell 发送命令行来运行程序,那么也有一个工具。所有 shell 元字符都由 shell 解释,包括管道,重定向,环境变量替换等。
使用 shell
用户输入时应小心。
如果程序失败(以非零退出码退出),它将在返回的Proc对象沉没时抛出异常。您可以将其保存为变量,甚至是匿名变量,以防止下沉:
$ = run '/bin/false'; # does not sink the Proc and so does not throw
您可以通过传递 :out
和 :err
标志来告诉 对象将输出捕获为文件句柄。您也可以通过 :in
标记传递输入。
您还可以使用 Proc
捕获PID,将信号发送到应用程序,并检查 exitcode。
my $crontab = run 'crontab', '-l';
if $crontab.exitcode == 0 {
}
else {
上面的小程序使用“tail”程序每 10 秒打印出名 system.log
的日志内容,然后通过 QUIT 信号告诉程序停止。
虽然 Proc
使用 IO::Handle
提供对输出的访问,但 Proc::Async
使用异步 supplies 提供访问(请参阅Supply)。
如果要在等待原始程序完成时运行程序并执行某些工作,则 start
例程将返回,该程序在程序退出时保留(kept)。