1

我正在尝试用目录 $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

我似乎找不到正确执行此操作的引号组合。谢谢....

4

1 回答 1

2

你为什么要使用反引号来表示 perl 可以自己完美完成的事情?

my @files = grep !-d, <$dir/*>;

顺便说一句,您的错误是$'一个 perl 预定义变量(后匹配),它被插值,因此'缺少关闭。

如果你用过

use strict;
use warnings;

Perl 会告诉你问题出在哪里:

Use of uninitialized value $' in quoted execution (``, qx) at ...

始终使用这两个编译指示:错误不会因为您不了解它们而变得更难处理。

于 2013-06-11T11:18:14.107 回答