Привет. Не могу понять, почему в одном случае ниже приведённый скрипт выставляет у строки флаг utf8, а в другом нет. Без прагмы encoding такого эффекта не наблюдается. Может кто-нибудь объяснить?
Вывод скрипта: v1 is utf-8 = 0 v2 is utf-8 = 0 v1 is utf-8 = 1 v2 is utf-8 = 0 Сам скрипт: use strict; use warnings; use v5.12; use utf8; use encoding 'utf-8'; my $v1 = ''; my $v2 = ''; utf8::downgrade($v1); utf8::downgrade($v2); say 'v1 is utf-8 = ', utf8::is_utf8($v1) || 0; say 'v2 is utf-8 = ', utf8::is_utf8($v2) || 0; $v1 .= chr(hex($_)) for qw(22 D0); $v2 .= chr(hex($_)) for qw(D0); say 'v1 is utf-8 = ', utf8::is_utf8($v1) || 0; say 'v2 is utf-8 = ', utf8::is_utf8($v2) || 0; Окружение: $ perl -v This is perl 5, version 14, subversion 2 (v5.14.2) built for x86_64-linux-gnu-thread-multi (with 57 registered patches, see perl -V for more detail) $ perl -MEncode -E 'say Encode->VERSION' 2.73 -- Денис Ибаев
-- Moscow.pm mailing list [email protected] | http://moscow.pm.org
