Perl 5.12 и \w

| Комментариев: 2

Некоторое время назад в файле perl5110delta появился странный раздел о том, что метасимволы \w и \d в регулярных выражениях должны совпадать только с ASCII-символами:

digit   \d  [0-9]
word    \w  [0-9A-Z_a-z]

К счастью, это пока не перекочевало в Perl 5.12, причем независимо от того, определен ли при компиляции символ PERL_LEGACY_UNICODE_CHARCLASS_MAPPINGS или нет.

Программа, от которой ожидается совпадение \w с русскими буквами, по-прежнему работает:

use v5.10;
use utf8;
use open qw(:utf8 :std);

"123abcабв" ~~ /(\w+)/;
say $1;

На печать выводится 123abcабв.

Комментариев: 2

"\s \w and \d once again have the semantics they had in Perl 5.8.x." - perl5111delta.

Комментировать

Страницы

  • img

Об этой записи

Сообщение опубликовано 06.04.2010 19:37. Автор — ash.

Предыдущая запись — Data::Maker

Следующая запись — REST::Client

Смотрите новые записи на главной странице или загляните в архив, где есть ссылки на все сообщения.