Всем привет! Мой cgi скрипт на Perl'e при определенных условиях (пока я не выяснил) начинает активно (бесконечно, пока не убить) жрать память. Проверил скрипт: зацикливаний нет. Задача скрипта: обработать данные из формы и залезть на указанный URL для проверки.
Может кто встречался с подобным?Из библиотек использую только LWP::UserAgent,IO::Socket и Fcntl. Если файл залочен, выдаю сообщение об ошибке и прерываю программу - все равно не помогло.
Может ли эта запись:
while (<$connect>) {
push(@result,$_);
}
быть причиной утечки памяти?Не пойму в чем дело.
>Всем привет! Мой cgi скрипт на Perl'e при определенных условиях (пока я
>не выяснил) начинает активно (бесконечно, пока не убить) жрать память. Проверил
>скрипт: зацикливаний нет. Задача скрипта: обработать данные из формы и залезть
>на указанный URL для проверки.
>Может кто встречался с подобным?
я совсем недавно боролся с таким же явлением...
у меня причиной было некорректное обращение со сложными структурами данных (хэш массивов).
так как я не особо спец по перлу и найти навскидку прблему не удалось, то пришлось мделенно и мучитально искать ошибки перенасыщая программу проверками на difined каждой используемой переменной или ячейки массива...
в одном из случаев память жрал sort с некорректно написанным условием.
Спасибо! Разобрался в чем дело, все-таки у меня происходило зацикливание while в одной процедуре, причём оно зависело от типа данных, и проявляло себя в редких случаях... В общем, лажанулся я малость... :)
>так как я не особо спец по перлу и найти навскидку прблему
>не удалось, то пришлось мделенно и мучитально искать ошибки перенасыщая программу
>проверками на difined каждой используемой переменной или ячейки массива...
#!/usr/bin/perl -w
use strict;в начале исполняемого файла сделают это за тебя.