Ух ты! Похоже, тупит из-за require. У нас MIME::Types капризничал только
под Mason'ом.

2011/12/9 Mons Anderson <[email protected]>

> Вообще конечно интересный вопрос.
>
> use PerlIO::scalar ();
> или
> { open(my $x,'<',\$data); }
>
> в начале решает проблему в исходном примере.
>
> Но вот то, что open вообще способен сам занять свободный хендл 0 это
> засада )
>
> Бага #105658
> Попробуем пообщаться...
>
> On 09.12.2011, at 12:25, Ruslan Zakirov wrote:
>
> > 2011/12/8 Alexandr Gomoliako <[email protected]>:
> >> Все сводится к тому, что при первой open после закрытия fd 0
> >> подгружается PerlIO и соответственно использует первый
> >> свободный дексриптор, т.е. fd 0.
> >
> > Блин. Ну почему это не баг. Еще один прикол из этой серии:
> >
> > local *STDOUT
> > open STDOUT, ...;
> >
> > system ...
> > open my $fh, '|-', ...
> >
> > Тоже соответственно не работают нормально из-за этого.
> >
> > Еще в этом направлении. В mod_perl 2, до версии 2.0.5 есть проблема.
> > Они закрывают STDOUT и открывают его на /dev/null, но делают это
> > "неправильно". Что приводит к тому, что fd #1 остается свободен и его
> > получает что-то другое, например БД.
> > Как вы понимаете запуск утилиты без перехвата вывода приводит к записи
> > в хендл БД мусора и разрыву соединения. Дебажить это было весело.
> >
> >
> >
> >
> > --
> > Best regards, Ruslan.
> > --
> > Moscow.pm mailing list
> > [email protected] | http://moscow.pm.org
>
> --
> Moscow.pm mailing list
> [email protected] | http://moscow.pm.org
>



-- 
Andrei Protasovitski
< andrei[dot]protasovitski[at]gmail[dot]com >
Diemen, Netherlands
-- 
Moscow.pm mailing list
[email protected] | http://moscow.pm.org

Ответить