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
