Никак. То есть можно, но - цитирую перлдок: если в <> находится что-то,
не являющееся файлхэндлом, либо простым скаляром, содершащим файлхэндл,
то эта хрень будет расценена как шаблон имени файла для glob, то есть, в
твоем случае это эквивалентно glob("$self->{$fd}")
на второй вопрос, STDOUT-ы находятся в main, не знаю, может можно как то
извратиться...
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()'
только, чтобы работало.
Кажется нужным для написания тестов всему, что срёт на экран.
Спасибо!
--
Moscow.pm mailing list
[email protected] | http://moscow.pm.org