[Moscow.pm] use utf8 vs no use utf8
Гнатына Александр
gnatyna на ya.ru
Ср Июл 29 01:53:33 PDT 2009
perl -le 'use utf8; use Data::Dump "pp"; do{ use utf8; print pp $::utf8::
{AUTOLOAD};my $s="привет"; print pp utf8::is_utf8($s); print pp $s; }'
*utf8::AUTOLOAD
1
"\x{43F}\x{440}\x{438}\x{432}\x{435}\x{442}"
perl -le 'use utf8; use Data::Dump "pp"; do{no utf8; print pp $::utf8::
{AUTOLOAD};my $s="привет"; print pp utf8::is_utf8($s); print pp $s; }'
*utf8::AUTOLOAD
""
pack("H*","d0bfd180d0b8d0b2d0b5d182")
Может так попробовать угадывать? Хотя это грубо, сам я не проверял другие
возможные варианты для is_utf8.
On 29 июля 2009 11:11:53 Dmitry E. Oboukhov wrote:
> ГА> Если в коде не было use utf8; или no utf8; то $::utf8::{AUTOLOAD} будет
> undef.
>
> а если был no utf8?
>
> то есть хочу такого:
>
> use utf8;
> use Package;
>
> my $string = MyPackage::foo; # - тут юникодная строка
>
> {
> no utf8;
> my $string2 = MyPackage::foo; # - тут encoded utf8-строка
> }
>
> ГА> On 28 июля 2009 20:53:51 Dmitry E. Oboukhov wrote:
> >> навеяло темой про CGI :)
> >>
> >> по работе иногда приходится писать модули для тулзовин написанных во
> >> времена царя гороха, которые без использования use utf8 работают и
> >> если им тудыть эту директиву вставить то придется очень много
> >> переделывать
> >>
> >> ну и в общем допустим пишем мы пакет
> >>
> >> package MyPackage;
> >> sub foo
> >> {
> >> ...
> >> return $string;
> >> }
> >>
> >> есть ли возможность модулю в котором есть директива use utf8 вернуть
> >> utf-строку, а модулю (вообще говоря блоку) который не содержит оной
> >> директивы вернуть простую байтовую строку?
> >>
> >> то есть что-то в духе
> >>
> >> sub foo
> >> {
> >> ...
> >> return is_caller_utf8 ? $string : encode utf8 => $string;
> >> }
> >> --
> >> ... mpd paused: Manowar - Call To Arms
> >>
> >> . ''`. Dmitry E. Oboukhov
> >>
> >> : :’ : email: unera на debian.org jabber://UNera@uvw.ru
> >>
> >> `. `~’ GPGKey: 1024D / F8E26537 2006-11-21
> >> `- 1B23 D4F8 8EC0 D902 0555 E438 AB8C 00CF F8E2 6537
>
> --
> ... mpd playing: Manowar - Hand Of Doom
>
> . ''`. Dmitry E. Oboukhov
>
> : :’ : email: unera на debian.org jabber://UNera@uvw.ru
>
> `. `~’ GPGKey: 1024D / F8E26537 2006-11-21
> `- 1B23 D4F8 8EC0 D902 0555 E438 AB8C 00CF F8E2 6537
--
С уважением, Гнатына Александр.
Подробная информация о списке рассылки Moscow-pm