1

这是我想要的一些 Perl 代码:

 my $value  = get_value();
 my $result = qx(some-shell-command $value);

 sub get_value {
   ...
   return ...
 }

不使用是否可以达到相同的效果$value?就像是

my $result = qx (some-shell-command . ' '. get_value());

我知道为什么第二种方法不起作用,它只是为了展示这个想法。

4

2 回答 2

6
my $result = qx(some-shell-command  @{[ get_value() ]});

# or dereferencing single scalar value 
# (last one from get_value if it returns more than one)
my $result = qx(some-shell-command  ${ \get_value() });

但我宁愿使用您的第一个选项。

解释: perl 数组在 , 等内部""插值qx()

上面是函数的数组引用[]保存结果,被 解引用@{},并在里面插值qx()

于 2014-06-18T12:32:24.807 回答
2

反引号 和qx等效于内置readpipe函数,因此您可以显式使用它:

$result = readpipe("some-shell-command " . get_value());
于 2014-06-18T14:31:59.817 回答