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

Для тестов подойдет 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: [email protected]

-- 
Moscow.pm mailing list
[email protected] | http://moscow.pm.org

Ответить