Stefan Bach: Perl + Statusanzeige

Beitrag lesen

Hallo.

Nämlich ich raff des vom Prinzip her schon nicht, wie das gehen soll.
Denn wenn ich mein Perl-Programm ausführe, dann ist doch nach dem erstenmal wenn ich an Browserwas zurück gesendet hab und den HTML-Tag schließe aus und vorbei und ich kann selbst wenn das Perl-Programm noch laufen sollte nicht mehr an den Browser schicken bzw. er reagiert nicht mehr drauf oder blick ich da was nicht ?!?
Wäre nett, wenn mir jemand helfen könnte und/oder vielleicht ein kleines simples Beispiel mit posten könnte.

Bei dem Upload, den du vorhast zu realisieren, da wird es denke ich nicht gehen. Ich bin mir nicht 100%ig sicher, aber ich glaube der Client schickt die Datei erst vollständig an den Webserver, bevor dieser dein Perl Programm aufruft. Also läuft dein Programm während des Uploads noch gar nicht.

Wenn du aber ansonsten eine Statusanzeige haben willst, dann geht das schon. Du musst das Buffern von STDOUT ausschalten ($| = 0; iirc). Dann kannst du z.B. folgendes machen:

#!/usr/bin/perl

$| = 0;  # Hier sicherheitshalber nochmal nachgucken.

print "Content-type: text/html\n\n";

print "<html><body><h1>Los gehts</h1>";

for (1..10) {
  print "<p>$_</p>";
  sleep 5;
}

print "<h1>Fertig!</h1></body></html>";

__END__

Damit kommen die meisten Browser zurecht.

Gruß,
    Stefan