【发布时间】:2010-10-04 07:38:02
【问题描述】:
我对这个测试脚本感到困惑:
#!perl
use strict;
use warnings;
use encoding 'utf8';
use Test::More 'no_plan';
ok('áá' =~ m/á/, 'ok direct match');
my $re = qr{á};
ok('áá' =~ m/$re/, 'ok qr-based match');
like('áá', $re, 'like qr-based match');
三个测试都失败了,但我期待 use encoding 'utf8' 会将文字 áá 和基于 qr 的正则表达式升级为 utf8 字符串,从而通过测试。
如果我删除 use encoding 行,测试会按预期通过,但我无法弄清楚为什么它们会在 utf8 模式下失败。
我在 Mac OS X(系统版本)上使用 perl 5.8.8。
【问题讨论】: