|
|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Andrey Chernomyrdin 2:5020/400 17 Nov 2005 15:47:54 To : Alexey Bavykin Subject : Re: вопрос про STDOUT -------------------------------------------------------------------------------- Alexey Bavykin wrote: [...] > AC> то есть по документации вроде-бы как есть, а вот то, что я получаю > AC> после *STDOUT имеет тип IO::Handle но не имеет метода print. > > С чего бы? *STDOUT это всетаки typeglob, а STDOUT - filehandle, но никак > не объект. > > AC> Хотя если как советует Maxim Yemelyanov в своем посте: > AC> IO::Handle->new_from_fd(fileno(STDOUT), 'w') то получаем > AC> полноценный IO::Handle объект. > > Угу. > > AC> Просто не хотелось иметь такие сложности именно с STDOUT. Это ведь > AC> должен быть полноценный объект, то есть записи: > AC> print STDOUT "text\n"; > AC> и STDOUT->print( "text\n" ); должны быть полностью идентичные. > > Если сделаешь use IO::Handle, то будут, почти. Да, действительно, но это не спасает меня от проблемы различить STDOUT от обычного объекта поддерживающего метод print и строки которую нужно использовать в качестве имени файла, указателя (reference) на скаляр в который можно сложить весь выводиммый контент, указателя на массив в который выводимый контент выводится. то есть STDOUT он не ref, но метод print у него присутствует: $ perl -MIO::Handle -e '$o=STDOUT; $h=IO::Handle->new; STDOUT->print( "STDOUT=", $o, " ref=", ref $o, "\n" )' STDOUT=STDOUT ref= $ _ ДаБ проверка STDOUT->can("print") не срабатывает ;-(, хотя работает -- Andrey Chernomyrdin --- ifmail v.2.15dev5.3 * Origin: Demos online service (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/6577f24b2c1a.html, оценка из 5, голосов 10
|