【发布时间】:2011-01-24 23:26:34
【问题描述】:
$w = 'self-powering';
%h = (self => 'self',
power => 'pauә',
);
if ($w =~ /(\w+)-(\w+)ing$/ && $1~~%h && $2~~%h && $h{$2}=~/ә$/) {
$p = $h{$1}.$h{$2}.'riŋ';
print "$w:"," [","$p","] ";
}
我希望输出是
self-powering: selfpauәriŋ
但我得到的是:
self-powering: [riŋ]
我的猜测是代码有问题
$h{$2}=~/ә$/
好像我用的时候
$h{$2}!~/ә$/
Perl 会按照我的意思做,但为什么我不能获得“self-powering: selfpauәriŋ”? 我究竟做错了什么?有任何想法吗?
一如既往地感谢任何 cmets/建议/指针 :)
【问题讨论】:
-
我很少得到任何代码来实现我的意思。 叹息。
-
你使用什么字符编码? UTF-8?你读过perldoc.perl.org/utf8.html 吗?
-
@Boldewyn,感谢您留下评论。但这个问题与 UTF-8 编码关系不大。该脚本保存为 UTF-8 格式,并且可以按预期输出内容,而无需在我的 Windows 机器上进行任何脚本内编码处理。
-
好的,很好。只是想提一下大多数人开始在他们的 Perl 文件中放入非 ASCII 字符的陷阱。