是否可以在qx内调用函数?

Ren*_*ger 1 perl qx

这里有一些Perl代码可以满足我的需求:

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

 sub get_value {
   ...
   return ...
 }
Run Code Online (Sandbox Code Playgroud)

没有使用可以达到相同的效果$value吗?就像是

my $result = qx (some-shell-command . ' '. get_value());
Run Code Online (Sandbox Code Playgroud)

我知道为什么第二种方法不起作用,只是为了证明这个想法.

Сух*_*й27 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() });
Run Code Online (Sandbox Code Playgroud)

但我宁愿使用你的第一个选择.

说明: perl的阵列内插内"",qx()

以上是[]函数的数组引用保持结果,被解除引用@{}并在内部进行插值qx().

  • 感谢您提供一个聪明的解决方案 不过,我和你在一起,我仍然会使用$ value. (2认同)