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 定義済み変数 (postmatch) であるため、終了'が欠落していることです。

もし使っていたら

use strict;
use warnings;

Perl は問題が何であるかを教えてくれます:

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

これらの 2 つのプラグマを常に使用してください。

于 2013-06-11T11:18:14.107 に答える