[Moscow.pm] Прототипы функций для файлов

Анатолий Гришаев 0body0 на rambler.ru
Вс Дек 29 22:57:59 PST 2013


Не работает так же как say_v1 $fh "foo"
Как только видит в пакете процедуру say_v1  он сразу перестает понимать 
косвенный вызов для sayx_v1 $fh ... , say_v1 {$fh} ...

30.12.2013 4:24, Mons Anderson пишет:
> а с принтом тоже хорошо-бы $handle указывать в {}
>
> т.е.
>
> print {$fh} "…"
>
>
> On 30.12.2013, at 0:36, Анатолий Гришаев <0body0 на rambler.ru> wrote:
>
>> Если всегда указывать дескриптор, то да вполне рабочий метод.
>> Если нужно написать say_v1 "hello" вместе с say_v1 FOO "bar",
>>
>> То они уже плохо вместе уживаются:
>> say_v1 FOO "bar" - ок
>> say_v1 "foo" - ок
>> say_v1 $fh "foo" -- уже не компилируется.
>>
>> А второй минус нужно лезть  в  IO::Handle, но кажется туда можно добавлять свои методы.
>>
>> 29.12.2013 18:58, Mons Anderson пишет:
>>> можно.
>>>
>>> я так делал say для 5.8.8
>>>
>>> *IO::Handle::print_blablabla = sub { … };
>>>
>>> ...
>>>
>>> print_blablabla FILE "something to print";
>>>
>>> On 27.12.2013, at 21:45, Анатолий Гришаев <0body0 на rambler.ru> wrote:
>>>
>>>> 27.12.2013 21:00, Maxim Vuets пишет:
>>>>>> print_utf FILE_UTF $foo;
>>>>>> print_cp1251 FILE_UTF $foo;
>>>>> Чего вы добиваетесь этим?
>>>> Хотел максимально сохранить стиль исходного кода, чтобы print заменить на print_blabla простым search & replace.
>>>>
>>>> А второе чтобы можно было использовать одну сабу для метода и для вызова (иногда нужно);
>>>>
>>>> Жалко, что нельзя сделать корректно полностью.
>>>> Но этот метод меня устроит.
>>>>
>>>> -- 
>>>> Moscow.pm mailing list
>>>> moscow-pm на pm.org | http://moscow.pm.org
>> -- 
>> Moscow.pm mailing list
>> moscow-pm на pm.org | http://moscow.pm.org



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