Eingebundene Skripte während der Ausführung neu einlesen
Marcel
- perl
Hallo,
ich habe ein Perl-Skript, welches in einer Endlosschleife auf Daten wartet, also von sich aus nur dann stoppt, wenn bestimmte Abbruchkriterien erfüllt sind.
Funktionen, die dieses Skript verwendet, sollen nun verändert werden können, vorzugsweise ohne ständig das Skript hierfür anhalten und wieder neu starten zu müssen. Dazu habe ich die folgende Idee und die Frage ist, ob und wie sich das mit Perl umsetzen lässt.
Es existiert das Hauptprogramm (nennen wir es einmal beispiel.pl) enthält dann z. B. Folgendes:
require( 'funktions_implementierungen.pl' );
while( $abbruchkriterium_nicht_erfuellt )
{
irgendeine_benutzerdefinierte_funktion(); # deren Implementierung in
# der eingebundenen Datei steht
sleep( $some_time );
}
Die Implementierungen der in beispiel.pl aufgerufenen benutzerdefinierten Funktionen - welche nun geändert werden sollen - befinden sich in einer externen Datei. Dies mit dem Gedanken, dass sie nun auch während der Ausführung von beispiel.pl aktualisiert werden könnten. Bei jedem Durchlauf der Endlosschleife müsste nun nur die eingebundene Datei (mit den Implementierungen) neu eingelesen und interpretiert werden. (Oder z. B. parallel in einem zweiten Thread.)
Lässt sich das machen? Falls ja, wie?
Gruß,
Marcel
moin,
Lässt sich das machen? Falls ja, wie?
Evntl. über %SIG
Hotti
Bei jedem Durchlauf der Endlosschleife müsste nun nur die eingebundene Datei (mit den Implementierungen) neu eingelesen und interpretiert werden.
http://www.google.de/search?hl=de&q=perl+module+reload
Dritter Treffer (nach unne scrolle):
http://darkeside.blogspot.com/2006/07/fun-with-perl-module-loading.html