perl - 在 qx 运算符中将 perl 数组拆分为单独的参数

标签 perl

我正在尝试将参数数组传递给 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/

相关文章:

mysql - DBD::MySQL:如何使 "LongReadLen"正常运行?

perl - 如何在 Perl 中捕获并重新抛出错误?

perl - 如何确定 LWP::Simple 的 getstore() 的下载速度和数量?

perl - 如何直接插入存储?

Perl:使用循环还是 Map/Grep?

perl - 从科学记数法转换为十进制记数法时如何保持显示精度?

perl - 模板工具包和复杂变量

arrays - 如何使用foreach跳过数组中的第一个元素?

string - Perl比较运算符和字符串化 "numbers"

mysql - 在没有互联网访问的情况下安装 Perl 的 mysql-dbd 模块