我正在尝试通过 IPC::Run 从 perl 执行 git 命令,该命令从 perl 变量中的 git 捕获 STDOUT/STDERR-Output。
这是我所做的:
use strict;
use warnings;
use IPC::Run;
my $stderr, $stdout, @cmd;
push @cmd, "git";
push @cmd, "clone";
push @cmd, "http://my.gitserver.com/scm/tst2/abc.git";
my $success = IPC::Run::run \@cmd, '>', \$stdout, '2>', \$stderr;
1;
运行此结果:
- $stdout:克隆到 'abc'...
- $标准错误:空
从命令行直接运行 git 命令会产生以下输出:
$ git clone http://my.gitserver.com/scm/tst2/abc.git
Cloning into 'abc'...
remote: Counting objects: 3, done.
remote: Total 3 (delta 0), reused 0 (delta 0)
Unpacking objects: 100% (3/3), done.
正如你所看到的,git 在命令行上产生的输出比我在 perl 实现中实际捕获的要多。
怎么了?