Ich verwende Perl und versteh die Sachen mit PHP nicht!
Das sollte doch kein grundlegendes Problem sein. Lies dir die Funktionsweise der von mir genannten PHP-Funktionen durch und suche nach etwas gleichwertigem in Perl.
Was ist der trick den Du verwendest?
Ich seh nichts was den timeout umgeht!
Ich umgehe ihn nicht. Ich lasse mich nur nicht von ihm ärgern und mache da weiter, wo der Timeout zugeschlagen hat.
Wie gesagt - Perl!
Ist der trick in flush() oder wie?
Beim Programmieren gibt es keine Tricks, nur Vorgehensweisen.
Du musst den Refresh (egal ob als Location-Header oder als meta-refresh) zum Browser senden. flush sorgt dafür, dass die Daten nicht im Sende-Puffer vergammeln. (Ich weiß leider nicht, ob das in Perl so geht... kann mir aber auch nicht vorstellen dass das da prinzipiell nicht so gehen soll. Perl und PHP kochen ja beide auch nur mit Wasser.) Ausgeführt wird der Refresh vom Browser erst, wenn entweder dein Script fertig ist oder der Timeout zugeschlagen hat. Ansonsten habe ich den Programmablauf in der Prinzip-Skizze beschrieben.
Das mit dem Header und wie bei Abbruch verhalten und so
ist in perl sicher auch anders wie in Perl.
Da muss man ja für die Header komplett selber sorgen. Aber ansonsten musst du eigentlich nur den Location-Header hinzufügen, oder du machst das mit dem Meta-Refresh, wenn dir der besser vertraut ist.
Zum Abbruchverhalten von Perl kann ich nichts sagen. Das ist aber hier egal, weil du ja (als User) nicht vorhast das Script abzubrechen.