这一行运行名为 “git” 的程序,并将 “git” 和 “status” 传递给它的命令行。它将使用 设置找到该 git 程序。

    如果您想通过向 shell 发送命令行来运行程序,那么也有一个工具。所有 shell 元字符都由 shell 解释,包括管道,重定向,环境变量替换等。

      使用 shell 用户输入时应小心。

      如果程序失败(以非零退出码退出),它将在返回的Proc对象沉没时抛出异常。您可以将其保存为变量,甚至是匿名变量,以防止下沉:

      1. $ = run '/bin/false'; # does not sink the Proc and so does not throw

      您可以通过传递 :out:err 标志来告诉 对象将输出捕获为文件句柄。您也可以通过 :in 标记传递输入。

      您还可以使用 Proc 捕获PID,将信号发送到应用程序,并检查 exitcode。

      1. my $crontab = run 'crontab', '-l';
      2. if $crontab.exitcode == 0 {
      3. }
      4. else {

      上面的小程序使用“tail”程序每 10 秒打印出名 system.log 的日志内容,然后通过 QUIT 信号告诉程序停止。

      虽然 Proc 使用 IO::Handle 提供对输出的访问,但 Proc::Async 使用异步 supplies 提供访问(请参阅Supply)。

      如果要在等待原始程序完成时运行程序并执行某些工作,则 start 例程将返回,该程序在程序退出时保留(kept)。