25 декабря 2013 г., 17:13 пользователь Харпалёв Иван <
[email protected]> написал:

> 2) Можно ли "определить  STDOUT  внутри пакета" снаружи  него?
>
> что-то вроде
>
> perl -E '
> package P;
> sub f{print 33};
>
>  package main;
>  open my $out, "<out";
>  *P::STDOUT=$out;    #или local или как-то ещё...
>
>  P->f()'
>
> только, чтобы работало.
>
> Кажется нужным для написания тестов всему, что срёт на экран.
>
>
Передавать тому, что срет, дескриптор как параметр. По умолчанию пусть срет
в STDOUT или куда надо.
Также можно перед тестами делать my $OLD_FH = select $TEMP_FH;, а по
окончании их - select $OLD_FH;

-- 
Best regards,
Ilya Chesnokov
-- 
Moscow.pm mailing list
[email protected] | http://moscow.pm.org

Ответить