|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Serg Ivanov 2:5020/400 06 Apr 2005 18:26:02 To : Andrew Alakozow Subject : Re: Ошибки в Перле -------------------------------------------------------------------------------- Tue Apr 05 2005 15:29, Andrew Alakozow wrote to Serg Ivanov: SI>> Что за ерундовина: вставляю внутрь цикла map цикл while, и Перл уже SI>> при трансляции (!) молча зацикливается (или виснет). Перл 5.8 под SI>> Виндовс и Перл 5.6.1 под Юникс. AA> Код какой? AA> map { my $i = $_; while ($i--) { print "$i " }; print "\n" } qw( 2 3 4 ); AA> # AA> не виснет Я долго искал этот пример в своих файлах, наконец, сейчас нашел и выжал из него такой код: map{while(1){}}@a; Смысл в том, чтоб внутри map поставить while(1) и все! Hеужели, я первый это написал? Сейчас проверил на Перл 5.8.1.805 под Виндовс - чего-то все транслирует и транслирует, пока не прервешь программу. А первоначальный скрипт знакомый пытался транслировать на Юниксе под perl 5.6.1, получил тот же результат. Hу, и кто что теперь скажет? Я уже приводил полный текст с ошибкой Перла внутри RE (8-бинтый символ), но ничего толкового никто не ответил. А. Чуприна предложил "навскидку" использовать use bytes, но это не помогло. В версии 5.8 это похоже уже исправили. А во время выполнения программы ее легко можно положить, вставив, к примеру, внуть RE (?{goto M}) или другой оператор перехода. Почему транслятор это пропускает? Успехов! Сергей --- ifmail v.2.15dev5.3 * Origin: FidoNet Online - http://www.fido-online.com (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/16679f33a2b5b.html, оценка из 5, голосов 10
|