глюк :-((
Но количество передаваемых параметров динамично.
тоесть при одних условиях при нажатии submit передаётся 20 параметров а при других некоторые поля просто не выводятся и соответсвенно не передаются.
неким 20 переменным присваивается значение передаваемых параметров (вне зависимости от того есть они или нет) Вот тут то глюк и начинается.
Например при таком коде
while ($k<=20)
{
if ($name_value[$k] eq "")
{
$name_value[$k]='1';
}
$k++;
}
(где $name_value[$k] это и есть ранее присвоенные передаваемые параметры)
explorer просто уходит в нирвану (делает вид что он что то грузит) .
НО если цикл задать не до 13 а допустим до 4 то всё работает!!
Или от 4 до 8 и т.д.
при этом в памяти остаётся неубиваемый процесс perla даже когда закрыть explorer-((
Цитата:
On 2002-09-28 0252, Anonymous wrote
есть HTML форма обрабатываемая perl скриптом.
Но количество передаваемых параметров динамично.
тоесть при одних условиях при нажатии submit передаётся 20 параметров а при других некоторые поля просто не выводятся и соответсвенно не передаются.
неким 20 переменным присваивается значение передаваемых параметров (вне зависимости от того есть они или нет) Вот тут то глюк и начинается.
Например при таком коде
while ($k<=20)
{
if ($name_value[$k] eq "")
{
$name_value[$k]='1';
}
$k++;
}
(где $name_value[$k] это и есть ранее присвоенные передаваемые параметры)
explorer просто уходит в нирвану (делает вид что он что то грузит) .
НО если цикл задать не до 13 а допустим до 4 то всё работает!!
Или от 4 до 8 и т.д.
при этом в памяти остаётся неубиваемый процесс perla даже когда закрыть explorer-((
Я почти уверен что ошибка не в этом кусочке, т.к на мой взгляд он вполне нормальный...
// http//www.sp1r1tual.com
Я всё ж вчера с этим разобрался. Немного через ... но работает. Зато у этой сказочки есть продолжение.
Счастливо решив проблему я дальше себе спокойно прогал. К этому времени в памяти висело около 30 процессов perl. Но т.к. они из ресурсов ничего не жрали а убиваться отказывались я их оставил. влом было перегружаться. Так вот через часа 2 я заметил что у меня всё что то притормаживает. Каково же было моё удивление что один из этих процессов жрёт все свободные ресурсы. Но т.к. при написании кода много не надо то я и после этого не стал перегружаться. Ещё через час чисто ради любопытства заглянул в распределение ресурсов и обнаружил там что теперь уже 2 процесса делят поровну между собой оставшиеся свободными ресурсы.
Ещё через час ничего не изменилось и я лёг наконец спать так что конца сказочки не знаю. Хоть проблема решена но всё же интересно почему это происходит. Так что хотелось бы оставить вопрос открытым.
Цитата:
On 2002-09-28 1628, Anonymous wrote
Если его закомментировать всё работает.
Я всё ж вчера с этим разобрался. Немного через ... но работает. Зато у этой сказочки есть продолжение.
Счастливо решив проблему я дальше себе спокойно прогал. К этому времени в памяти висело около 30 процессов perl. Но т.к. они из ресурсов ничего не жрали а убиваться отказывались я их оставил. влом было перегружаться. Так вот через часа 2 я заметил что у меня всё что то притормаживает. Каково же было моё удивление что один из этих процессов жрёт все свободные ресурсы. Но т.к. при написании кода много не надо то я и после этого не стал перегружаться. Ещё через час чисто ради любопытства заглянул в распределение ресурсов и обнаружил там что теперь уже 2 процесса делят поровну между собой оставшиеся свободными ресурсы.
Ещё через час ничего не изменилось и я лёг наконец спать так что конца сказочки не знаю. Хоть проблема решена но всё же интересно почему это происходит. Так что хотелось бы оставить вопрос открытым.
Очень интересное продолжение, теперь серваки можешь вешать.. )
А почему прочесс не снимает значит там какойто мертвый цикл, но этот цикл вроде не мертвый..
А можно весь код ??
написав
#!/usr/bin/perl
use warnings;
use CGI qw(standard);
use CGICarp qw(fatalsToBrowser);
use DBI;
use HTMLTemplate;
print header();
while ($i<=$gluk)
{
$name_value[$i] = param("$i");
print $name_value[$i];
$i++;
}
При этом подлгужаемые модули у меня стояли по умолчанию я обнаружил свой глюк. тобишь если $gluk маленькое (около 10) то прога работает а если больше то всё.
Но написав это подумал накой там
use CGICarp qw(fatalsToBrowser);
use DBI;
use HTMLTemplate;
и убрал. Проверил и о чудо! всё работает. Методом последовательных приближений было выяснено что глюк начинается из за
use CGICarp qw(fatalsToBrowser); (((.
Цитата:
On 2002-09-29 0502, Anonymous wrote
Во время написания тебе простейшего примера глюк был локлизирован
написав
#!/usr/bin/perl
use warnings;
use CGI qw(standard);
use CGICarp qw(fatalsToBrowser);
use DBI;
use HTMLTemplate;
print header();
while ($i<=$gluk)
{
$name_value[$i] = param("$i");
print $name_value[$i];
$i++;
}
При этом подлгужаемые модули у меня стояли по умолчанию я обнаружил свой глюк. тобишь если $gluk маленькое (около 10) то прога работает а если больше то всё.
Но написав это подумал накой там
use CGICarp qw(fatalsToBrowser);
use DBI;
use HTMLTemplate;
и убрал. Проверил и о чудо! всё работает. Методом последовательных приближений было выяснено что глюк начинается из за
use CGICarp qw(fatalsToBrowser); (((.
Я же говорю что ошибка не в цикле.. ) , ну а дальше я уж не знаю, я не программист на перл.. , смотри по ману..
// http//www.sp1r1tual.com
Во время написания тебе простейшего примера глюк был локлизирован )
написав
#!/usr/bin/perl -w
^^^
use strict;
^^^^^^^^^^
use CGI qw(standard);
use CGICarp qw(fatalsToBrowser);
use DBI;
use HTMLTemplate;
print header();
while ($i<=$gluk)
{
$name_value[$i] = param("$i");
print $name_value[$i];
$i++;
}
Типа если вот так вот писать то интересно сколько ворнингов будет в коде ;)=
==Кусь==
Методом последовательных приближений было выяснено что глюк начинается из за
use CGICarp qw(fatalsToBrowser); ((((.
;)=
Да, Lincoln D. Stein - вообще программировать не умеет ;)))))
Цитата:
On 2002-09-30 0947, ReDrum wrote
On 2002-09-29 0502, Anonymous wrote
Во время написания тебе простейшего примера глюк был локлизирован
написав
#!/usr/bin/perl -w
^^^
use strict;
^^^^^^^^^^
use CGI qw(standard);
use CGICarp qw(fatalsToBrowser);
use DBI;
use HTMLTemplate;
print header();
while ($i<=$gluk)
{
$name_value[$i] = param("$i");
print $name_value[$i];
$i++;
}
Типа если вот так вот писать то интересно сколько ворнингов будет в коде =
==Кусь==
Методом последовательных приближений было выяснено что глюк начинается из за
use CGICarp qw(fatalsToBrowser); (((.
=
Да, Lincoln D. Stein - вообще программировать не умеет ))))
Искренне рад что сумел тебя развеселить.
НО стоит отдать тебе должное работает.
Кстати мб обьяснишь почему со strict работает а без нет?
Или ты его вставляешь везде где начало состоит из #!/usr/bin/perl ?-)
^^^
use strict;
^^^^^^^^^^
Искренне рад что сумел тебя развеселить.
НО стоит отдать тебе должное: работает.
Кстати мб обьяснишь почему со strict работает а без нет?
???
Этот пример рабатает с директивой use strict
???
По крайней мере нет ни одной инициализированной переменной.
Или ты его вставляешь везде где начало состоит из #!/usr/bin/perl ?:-)
perldoc strict