[Moscow.pm] Где в модуле писать use utf8
Maxim Vuets
maxim.vuets на gmail.com
Чт Июн 13 00:13:13 PDT 2013
2013/6/13 Dmitry L. <dim0xff на gmail.com>:
> Привет!
>
> Возник вопрос, а где правильно (не с точки зрения синтаксиса, а вообще) и
> нагляднее писать use utf8 в файле с модулем?
> 1. до package My::Module;
> 2. после package My::Module;
Прагма utf8 имеет лексическую область видимости. Объявите до --- будет
на файл. После --- на пакет.
Я предпочитаю писать до, потому что в файле может быть несколько
пакетов, а код пакетов едва ли будет записан в разных кодировках (весь
файл должен быть в единой кодировке).
> Считаем, что модули не сами по себе, а часть какого-то приложения, которое
> утф8.
Это утверждение непонятно. Что значит "приложение утф8"?
На всякий случай: прагма utf8 сообщает о кодировке файла с исходным
кодом, а не о кодировке данных, с которыми потом работает приложение.
Смотрите `perldoc utf8`.
> Вопрос появился после того, как взглянул на файлы, которые создаются с
> помощью DBIC::Schema::Loader::_dump_to_dir
>
> Там почему-то так:
> -----------------------------------------------
> my $schema_text =
> qq|use utf8;\n|
> . qq|package $schema_class;\n\n|
> . qq|# Created by DBIx::Class::Schema::Loader\n|
> . qq|# DO NOT MODIFY THE FIRST PART OF THIS FILE\n\n|;
> -----------------------------------------------
>
Вероятно в этот файл потом пишется UTF-8 текст, например, строковые
DEFAULT значения схемы.
>
> --
> //wbr, Dmitry L.
>
> --
> Moscow.pm mailing list
> moscow-pm на pm.org | http://moscow.pm.org
>
Подробная информация о списке рассылки Moscow-pm