[Moscow.pm] use encoding и манипуляции со строками
Denis Ibaev
dionys на gmail.com
Пт Апр 24 09:54:40 PDT 2015
Привет.
Не могу понять, почему в одном случае ниже приведённый скрипт выставляет у
строки флаг 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
--
Денис Ибаев
----------- следущая часть -----------
Вложение в формате HTML было извлечено…
URL: <http://mail.pm.org/pipermail/moscow-pm/attachments/20150424/0ea07a26/attachment.html>
Подробная информация о списке рассылки Moscow-pm