2

いくつかの perl スクリプトを継承しました。(私は perl プログラマーではありません)。

"can't find unicode property definition ascii"以下の行にエラーが表示されます

$value =~ s/[^[:\p{ascii}]]//g 

このエラーにより、プログラムの実行が停止しますか? プログラムが停止する前に出力される最後の行です。

その同じ行は、あきらめる前に 1,000 回以上実行されています。問題は何ですか?

私は、 $value の値が問題の原因ではないことに傾いています。私は正しいですか?

{ascii} がユニコード定義から削除されたように思えます。これを行うことはできますか、それとも間違ったツリーを完全に吠えていますか?

4

1 に答える 1

2

ascii大文字でなければならないと私には思えますASCII

$value =~ s/[^\p{ASCII}]//g 

\p{ascii} でテスト:

#> cat test.pl
#!/usr/bin/perl
my $str = q/☺ùùabvcedhkè ég"/;
$str =~ s/[^\p{ascii}]//g;
print $str,"\n";

#> perl test.pl
Can't find Unicode property definition "ascii" at test.pl line 3.

\p{ASCII} でテスト:

cat test.pl
#!/usr/bin/perl
my $str = q/☺ùùabvcedhkè ég"/;
$str =~ s/[^\p{ASCII}]//g;
print $str,"\n";

#> perl test.pl
abvcedhk g"
于 2012-01-19T13:21:15.220 に答える