我继承了一些perl脚本。 (我不是perl程序员)。
我在下面的行中看到错误"can't find unicode property definition ascii"
$value =~ s/[^[:\p{ascii}]]//g
此错误会导致程序执行停止吗?因为它是程序停止之前打印的最后一行。
同一条线在放弃之前已经运行了1000多次。问题是什么?
我倾向于 $ value 的值不是造成问题的原因。 我是对的吗?
在我看来,似乎{ascii}已从unicode定义中删除。可以这样做还是我完全咆哮错误的树?
答案 0 :(得分: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"