[Moscow.pm] Вопрос про дескрипторы и STDOUT.

Pavel Zabolotniy tim на myrz.ru
Ср Дек 25 05:39:41 PST 2013


Добрый вечер!

Для тестов подойдет IO::String, 
http://search.cpan.org/~gaas/IO-String-1.08/String.pm 
<http://search.cpan.org/%7Egaas/IO-String-1.08/String.pm>

$ perl -we 'package foo; sub bar { print "baz\n" }; package main; use 
IO::String; my $str_out = IO::String->new(); $str_out->setpos(0); { 
local *STDOUT = $str_out; foo->bar(); }; $str_out->setpos(0); print 
<$str_out>;'
baz

25.12.2013 17:13, Харпалёв Иван пишет:
> Доброго времени суток, глубокоуважаемый MoscowPM!!
>
> Несколько вопросов связанных с дескрипторами:
>
> 1) Как написать  $string = <$self->{$fd}>  ??
>
> 2) Можно ли "определить  STDOUT  внутри пакета" снаружи  него?
>
> что-то вроде
>
> perl -E '
> package P;
> sub f{print 33};
>
>  package main;
>  open my $out, "<out";
>  *P::STDOUT=$out;    #или local или как-то ещё...
>
>  P->f()'
>
> только, чтобы работало.
>
> Кажется нужным для написания тестов всему, что срёт на экран.
>
>
> Спасибо!
>
>


-- 
#!/usr/bin/Regards,
Pavel Zabolotniy
email: tim на myrz.ru

----------- следущая часть -----------
Вложение в формате HTML было извлечено…
URL: <http://mail.pm.org/pipermail/moscow-pm/attachments/20131225/43193686/attachment-0001.html>


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