Здравствуйте!
Помогите пожалуйста советом. Необходимо создать веб-страничку + CGI скрипт на Perl. На страничке должно отображаться текущее состояние работы скрипта: выводиться события как в консоль - последовательным списком.
Например:#!c:/perl/bin/Perl.exe -T
use strict;
use CGI qw(:standard escapeHTML);print "Content-type: text/plaintext\n\n";
for (my $i = 0; $i < 10; $i++)
{
print "Some text $i\n\r";
sleep 1;
}Необходимо получить вывод такого скрипта не весь одним куском, а каждый print "Some text $i\n\r"; сразу после его выполнения.
man perlvar
Ну или для убогих local $|=1
>man perlvar
>Ну или для убогих local $|=1Для убогих не работает!!! Все пачкой выдается
>>man perlvar
>>Ну или для убогих local $|=1
>
>Для убогих не работает!!! Все пачкой выдаетсяhttp работает по принципу "запрос-ответ", чисто http никак.
можно пробовать сваливать лог кудато в файл и показывать на страничке с автообновлением
либо жаваскриптом - но в этом не силен
>http работает по принципу "запрос-ответ", чисто http никак.
>можно пробовать сваливать лог кудато в файл и показывать на страничке с
>автообновлением
>либо жаваскриптом - но в этом не силенПопробую...
Вы забываете что ответ не обязательно должен быть полным, ничто не мешает выдавать браузеру в час по чайной ложке. Например следующий скрипт отрабатывает как раз 20 секунд и каждую секунду в бразуере(по крайне будет появлятся следующая цифра
#!/usr/bin/perl
use strict;
print "Content-type: text/html\n\n";
$|=1;
for (1..20) {
print "$_
\n";
sleep 1;
}
>[оверквотинг удален]
>появлятся следующая цифра
>#!/usr/bin/perl
>use strict;
>print "Content-type: text/html\n\n";
>$|=1;
>for (1..20) {
> print "$_
>\n";
> sleep 1;
>}Неа, всеравно через 20 секунд все вываливается одной пачкой...((((
Значит проблема на стороне веб-сервера или браузера, но это уже вам легче найти. Могу лишь подсказать идею вместо бразуера использовать netcat.
>[оверквотинг удален]
>появлятся следующая цифра
>#!/usr/bin/perl
>use strict;
>print "Content-type: text/html\n\n";
>$|=1;
>for (1..20) {
> print "$_
>\n";
> sleep 1;
>}это зависит от браузера - я в свое время точно такжен пытался сделать - нихера не вышло
толком