我正在尝试将参数数组传递给 qx
运算符。考虑一下
my @files=qw(A.txt B.txt);
print qx/ls "@files"/;
这会产生错误:
ls: cannot access A.txt B.txt: No such file or directory
而显式替换数组参数:
print qx/ls A.txt B.txt/;
工作正常。如何将 perl 数组传递给 qx
运算符,以便每个数组元素成为 shell 命令的单独参数?
最佳答案
删除引号,就像在 shell 中输入 ls "A.txt B.txt"
一样。
print qx/ls @files/;
警告:如果数组中的文件名称中包含空格,则此方法不起作用。您可以单独对它们进行单引号,但这听起来不是一个好主意,并且处理所有特殊字符必然会在某些时候中断。此时我建议根本不要使用外部程序,而是使用 Perl 功能。
关于perl - 在 qx 运算符中将 perl 数组拆分为单独的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23580262/