PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Perl: print will nichts ausgeben!



Discipulus
13-06-2003, 08:57
Hallo zusammen

Ich habe ein Problem, dass ich bis vor kurzem nicht hatte. Doch jetzt sieht es aus als spinne mein Script!
Es geht darum, dass ich gewisse ausgaben machen will, zu bestimmten zeitpunkten im Script. Das Problem ist nun, dass ich die ersten 3 Ausgaben sehe, bis der Rest ausgegeben wird, muss ich warten bis der Script fertig gearbeitet wurde!

Komisch finde ich auch, wenn ich bei der dritten Ausgabe, welche noch zum richtigen Zeitpunkt ausgegeben wird, das \n entferne, wird es auch erst am Ende des Scripts ausgegeben. Wenn es jedoch mit dem \n geschrieben wird, wird es richtig ausgegeben.

Ich verstehe nicht woran das liegen kann.

Ich habe das Modul Term::ReadKey benutzt, ist nun jedoch auskommentiert. Aber mit diesem hatte ich mal ähnliche Probleme, weiss aber nicht ob es jetzt noch etwas damit zu tun hat.

Ich hoffe ihr könnt mir irgendwie helfen!

Danke

tuxipuxi
13-06-2003, 11:40
hi,

zeig doch mal den code.

gruss,

tuxipuxi.

sixfriends
15-06-2003, 19:31
Da musst du uns schon ein paar mehr Infos rüberkommen lassen. Z.B. benutzt du Perl als eigenes Script oder in Verbindung mit CGI, und poste auch mal den Quelltext.

Falls du das Zeug auf einer Website benutzt, kannst du mit
use CGI::Carp qw(fatalsToBrowser); hinter dem Pfad des Perl Interpreters die Fehler auf den Browser ausgeben lassen.

Im übrigen: Perl ist (zumindest in manchen installierten Versionen) nicht unfehlbar. Ich hatte auch schon einmal das Problem, dass Perl beim Ausgeben auf den Browser einige Zeichen komplett verschluckt hat. Ergibt lauter schöne kleine JavaScript Errors.

Ich würd ja die Adresse posten, aber der Server ist in letzter Zeit mehr down als up.:(

Discipulus
17-06-2003, 13:47
Also ich lasse mein Script als eigenständigen Script, d.h. nicht CGI!

Ein Problem habe ich jetzt hinbekommen, war ein peinlicher Fehler von meiner Seite :D

Aber ich denke ich habe immer noch irgendwie ein Problem!

Als Beispiel: Mein Script würde sich in subroutinen aufteilen lassn. Mache es aber nicht, weils mir zu blööde war. Nun ist es so, dass ich bevor eine dieser pseudo-subroutinen ausgeführt wird eine Meldung mit print ausgeben. Wenn die Routine fertig ist, will ich ein "done" ausgeben, damit man die übersicht hat, wie weit der Script schon ist.
Das komische ist, dass das "done" zeitgleich mit dem ersten String ausgegeben wird, was nicht stimmen kann. Denn bei der nächsten Subroutine sollte ebenfalls zuerst eine Meldung kommen, gefolgt von einem "done". Wenn die eine Routine fertig ist sollte gleich darauf die Meldung kommen, dass nun die 2 Subroutine abgearbeitet wird und danach ein done. Leider kommt die Meldung wieder zeitgleich mit dem done!
Kann das daran liegen, dass ich nur beim "done" ein "\n" ausgebe, und sonst nichts??


PS: Den Code poste ich nur ungern, da er ... wie soll ich sagen ... nicht für alle Augen bestimmt ist :D