小编Căc*_*rău的帖子

使用perl的qx {} /`...`运算符和参数列表

system,exec,open '|-',open2,等方面都让我来指定作为将直接传递到参数列表运行命令execvp通过一个外壳,而不是运行.

即使perl它足够聪明,如果它看起来像一个"简单"的命令,它可以直接运行它,这样可以省去正确的shell转义所带来的所有令人讨厌的陷阱的麻烦.

例:

open my $out, '|-', $prog, @args;
system $prog, @args;
exec $prog, @args;
Run Code Online (Sandbox Code Playgroud)

代替

open my $out, "|$prog @args";
system "$prog @args";
exec "$prog @args";
Run Code Online (Sandbox Code Playgroud)

qx//运营商是否有这样的等价物?或者你必须总是手工完成,例如.

sub slurpcmd {
   open my $h, '-|', @_ or die "open $_[0]|: $!";
   local $/ unless wantarray;
   <$h>
}
Run Code Online (Sandbox Code Playgroud)

perl backticks qx

5
推荐指数
3
解决办法
202
查看次数

标签 统计

backticks ×1

perl ×1

qx ×1