Moin, eine Frage an die Perl-Spzialisten. Gegeben sei folgendes Skriptfragment: --------------------8<---------------------------------- use LCDd; my $polling_interval = 5; # in seconds # setup for an early retirement $SIG{INT} = \&cleanup; $SIG{QUIT} = \&cleanup; # set up the polling to update the screens $SIG{ALRM} = \&onAlarm; alarm $polling_interval; # run the main message loop $lcd->Pump(); # if we get here, the lcd server must be shutting down cleanup(); exit; #### Subroutines # onAlarm # sub onAlarm { # tue dies und das... alarm $polling_interval; } # cleanup # sub cleanup { alarm(0); $lcd->close(); exit(); } ---------------------------------------------------------- Problem ist, dass der Skript genau $polling_interval läuft und dann beendet wird, ohne Fehler natürlich. Das deutet ja darauf hin, dass ich nach dem Setzen des Alarms zwar in die "main message loop" $lcd-Pump() reingerate, selbige aber nach dem ersten Callback-Aufruf der Sub onAlarm irgendwie nicht weiter ausgeführt, sondern einfach verlassen wird. In der Dokumentation zu LCDd steht dazu folgendes: o LCDd->Pump(); Reads all messages from the server and processes them. It calls ProcessMessage() for every message and exits only when the connection to the server is broken. It can serve as the main loop for most applications. Meine Frage ist: kann man solche Konstruktionen wie oben verwenden, oder liegt der Fehler hier bei mir? Hannes
participants (1)
-
Johannes Studt