NPH-script werkt pas na reload!?

Pagina: 1
Acties:

  • Drop
  • Registratie: September 2001
  • Laatst online: 19-02-2022
Hoi, ik kom niet uit het volgende probleem. Ik heb het volgende nph script :

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#!/usr/bin/perl

my $server_protocol = $ENV{'SERVER_PROTOCOL'};
my $server_software = $ENV{'SERVER_SOFTWARE'};

print "$server_protocol 200 OK\n";
print "Server $server_software\n";
print "Content-type: text/html\n";
print "Pragma: no-cache\n\n";

$| = 1;

for(1..5)
{
  print "$_";
  sleep(1);
}


Als ik nu de url intik in mijn browser gooit ie na 5 sec in een keer alles eruit, wat natuurlijk niet de bedoeling is. Als ik nu het script reload print ie wel met tussen pauses van 1 sec. Iemand een idee hoe dit komt of wat ik zou kunnen proberen?

Thanks!

  • Helmet
  • Registratie: Januari 2002
  • Laatst online: 28-08 08:51
in php is er de functie flush(); die ervoor zorgt dat alles tot dat punt op t scherm gezet wordt misschien is die er in Perl ook wel
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#!/usr/bin/perl

my $server_protocol = $ENV{'SERVER_PROTOCOL'};
my $server_software = $ENV{'SERVER_SOFTWARE'};

print "$server_protocol 200 OK\n";
print "Server $server_software\n";
print "Content-type: text/html\n";
print "Pragma: no-cache\n\n";

$| = 1;

for(1..5)
{
  print "$_";
  sleep(1);
  flush();
}

[ Voor 67% gewijzigd door Helmet op 22-07-2004 10:07 ]

Icons are overrated


  • Drop
  • Registratie: September 2001
  • Laatst online: 19-02-2022
Voor de flush gebruik je in perl de variabele $|. Als je deze een waarde niet-nul geeft, wordt elke print direct naar het scherm geschreven. Daar lijkt het volgens mij niet aan te liggen, want immers, het script schrijft de output ook direct naar het scherm, maar alleen als je het script eerst reload.