Ух ты! Похоже, тупит из-за require. У нас MIME::Types капризничал только под Mason'ом.<br><br><div class="gmail_quote">2011/12/9 Mons Anderson <span dir="ltr"><<a href="mailto:mons@rambler-co.ru">mons@rambler-co.ru</a>></span><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">Вообще конечно интересный вопрос.<br>
<br>
use PerlIO::scalar ();<br>
или<br>
{ open(my $x,'<',\$data); }<br>
<br>
в начале решает проблему в исходном примере.<br>
<br>
Но вот то, что open вообще способен сам занять свободный хендл 0 это засада )<br>
<br>
Бага #105658<br>
Попробуем пообщаться...<br>
<div class="HOEnZb"><div class="h5"><br>
On 09.12.2011, at 12:25, Ruslan Zakirov wrote:<br>
<br>
> 2011/12/8 Alexandr Gomoliako <<a href="mailto:zzz@zzz.org.ua">zzz@zzz.org.ua</a>>:<br>
>> Все сводится к тому, что при первой open после закрытия fd 0<br>
>> подгружается PerlIO и соответственно использует первый<br>
>> свободный дексриптор, т.е. fd 0.<br>
><br>
> Блин. Ну почему это не баг. Еще один прикол из этой серии:<br>
><br>
> local *STDOUT<br>
> open STDOUT, ...;<br>
><br>
> system ...<br>
> open my $fh, '|-', ...<br>
><br>
> Тоже соответственно не работают нормально из-за этого.<br>
><br>
> Еще в этом направлении. В mod_perl 2, до версии 2.0.5 есть проблема.<br>
> Они закрывают STDOUT и открывают его на /dev/null, но делают это<br>
> "неправильно". Что приводит к тому, что fd #1 остается свободен и его<br>
> получает что-то другое, например БД.<br>
> Как вы понимаете запуск утилиты без перехвата вывода приводит к записи<br>
> в хендл БД мусора и разрыву соединения. Дебажить это было весело.<br>
><br>
><br>
><br>
><br>
> --<br>
> Best regards, Ruslan.<br>
> --<br>
> Moscow.pm mailing list<br>
> <a href="mailto:moscow-pm@pm.org">moscow-pm@pm.org</a> | <a href="http://moscow.pm.org" target="_blank">http://moscow.pm.org</a><br>
<br>
--<br>
Moscow.pm mailing list<br>
<a href="mailto:moscow-pm@pm.org">moscow-pm@pm.org</a> | <a href="http://moscow.pm.org" target="_blank">http://moscow.pm.org</a><br>
</div></div></blockquote></div><br><br clear="all"><br>-- <br>Andrei Protasovitski<br>< andrei[dot]protasovitski[at]gmail[dot]com ><br>Diemen, Netherlands<br>