2013/6/13 Dmitry L. <[email protected]>:
> Привет!
>
> Возник вопрос, а где правильно (не с точки зрения синтаксиса, а вообще) и
> нагляднее писать 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
> [email protected] | http://moscow.pm.org
>
-- 
Moscow.pm mailing list
[email protected] | http://moscow.pm.org

Ответить