Perl скрипт останавливается.Ошибка: не удается найти определение свойства Unicode ASCII - PullRequest
2 голосов
/ 19 января 2012

Я унаследовал некоторые сценарии Perl.(Я не программист на Perl).

Я вижу ошибку "can't find unicode property definition ascii" в строке ниже

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

Не приведет ли эта ошибка к остановке выполнения программы?Так как это последняя строка, напечатанная перед остановкой программы.

Эта же строка была выполнена более 1000 раз, прежде чем она сдалась.В чем может быть проблема?

Я склоняюсь к тому, что значение $ value НЕ является причиной проблемы. Я прав?

Мне кажется, что {ascii} был удален из определений юникода .Можно ли это сделать или я полностью лаю не на том дереве?

1 Ответ

2 голосов
/ 19 января 2012

Мне кажется, 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"
...