在 shell 命令中使用本地 perl 变量

Using local perl variables in shell command

我正在尝试 运行 一个远程查找命令,但我必须将其值从用户的命令行参数中获取的局部变量传递给它。但是,我收到 "undefined variable" 错误。我正在做类似的事情:

my $ssh = Net::OpenSSH->new($host);
#I am getting a part of the $path and $pattern from command line
#I have to look for $pattern at the $path
my @files = $ssh->capture(q(find $path -name $pattern) );

当我给出确切的路径和模式时,这个命令运行很好,但是当我用变量替换它时出现错误。

q(find $path -name $pattern)

这是文字字符串 find $path -name $pattern、美元符号和所有内容。

Perl 有几种不同的引号。 "" 将插入变量(即用它们的值替换它们),'' 不会。 q()''的另一种写法。你想要 qq().

有关详细信息,请参阅 Quote and Quote-Like Operators in perlop