通常要获取从perl运行的命令的输出,我使用返回tick
my $value = `pwd`;
如果我需要在后面的标记``?
中插入一个变量,我该怎么做呢答案 0 :(得分:7)
反引号内的文本在传递到操作系统之前进行插值,方式与双引号内的文本相同。所以这些陈述都是他们看起来的样子:
$value = `$command`;
$value = `$someCommand $arg`;
$value = `$someOtherCommand @list`;
qx()
是运行外部命令并返回输出的另一种方法。如果由于某种原因你不希望Perl插入你的命令,你可以使用单引号分隔符运行qx
。
$value = qx'echo $PATH'; # shell's $PATH, not Perl's $PATH
答案 1 :(得分:5)
你可以插入它。 E.g。
my $dir = "/home"
my $text = `ls -l $dir`;
print $text;
答案 2 :(得分:4)
my $hello = "world";
my $value = ` echo $hello `;
print $value;
答案 3 :(得分:-1)
使用qx()而不是反引号。例如。我的($ used,$ dir); ($ used)= qx(du -k $ dir);