[Moscow.pm] Где в модуле писать use utf8

Олег Алексеенков proler на gmail.com
Чт Июн 13 05:22:35 PDT 2013


Oleg Alistratov <ali на ali.org.ua> писал(а) в своём письме Thu, 13 Jun 2013  
14:52:23 +0400:

Подход противоположный началу тредика:

use common::sense;
use warnings "NONFATAL" => "all";
no warnings qw(uninitialized);


"NONFATAL" => "all" нужен например для не падания на
hex "\x01"
- интересное место, warnings отключает die

> Есть еще такой очень неоднозначный модуль common::sense :)
>
>
> 13.06.2013, 13:14, "Maxim Vuets" <maxim.vuets на gmail.com>:
>> 2013/6/13 Ruslan Zakirov <ruz на bestpractical.com>:
>>
>>>  2013/6/13 Maxim Vuets <maxim.vuets на gmail.com>
>>>>  2013/6/13 Dmitry L. <dim0xff на gmail.com>:
>>>>>  Привет!
>>>>>
>>>>>  Возник вопрос, а где правильно (не с точки зрения синтаксиса, а  
>>>>> вообще)
>>>>>  и
>>>>>  нагляднее писать use utf8 в файле с модулем?
>>>>>  1. до package My::Module;
>>>>>  2. после package My::Module;
>>>>  Прагма utf8 имеет лексическую область видимости. Объявите до ---  
>>>> будет
>>>>  на файл. После --- на пакет.
>>>  По этому все лексические прагмы нуно писать до пакета, в том числе  
>>> strict,
>>>  warnings... Один файл - один пакет - это хорошо, но иногда надо два и  
>>> более
>>>  и вот тогда может быть неприятный сюрприз.
>>
>> Говоря в общем, да, я согласен (-: Мой типичный boilerplate такой:
>>
>>     use strict;
>>     use warnings;
>>     use autodie qw<:all>;
>>     use utf8;
>>     use open qw<:utf8 :std>;
>>
>>     ##############################################################################
>>     package My::Package;
>>
>>     use Something;
>> ...
>> --
>> Moscow.pm mailing list
>> moscow-pm на pm.org | http://moscow.pm.org


Подробная информация о списке рассылки Moscow-pm