我正在尝试使用目录$ dir中的文件名列表填充Perl数组,并且我想要排除目录。我的代码是:
my @lsArray = `ls -p $dir | grep -v '/$'`;
但是它会产生这个错误:
sh: -c: line 0: unexpected EOF while looking for matching `''
sh: -c: line 1: syntax error: unexpected end of file
我似乎无法找到正确执行此操作的引号组合。感谢....
答案 0 :(得分:2)
为什么你使用反引号来表示perl可以自行完成的事情呢?
my @files = grep !-d, <$dir/*>;
顺便说一下,你的错误是$'
是一个被插值的perl预定义变量(postmatch),因此缺少结束'
。
如果您使用过
use strict;
use warnings;
Perl会告诉你问题是什么:
Use of uninitialized value $' in quoted execution (``, qx) at ...
始终使用这两个pragma:错误不会因为你不了解它而变得难以处理。