Ich habe ein Perl-Skript, das ein anderes Dienstprogramm (mit dem Namen Radmind, für diejenigen, die interessiert sind), die die Fähigkeit zum Bearbeiten des Dateisystems hat. Das Perl-Skript überwacht die Ausgabe dieses Prozesses, sodass es während der gesamten Situation ausgeführt wird.Wie interagiert Perl mit den Skripten, die es ausführt?
Was würde passieren, wenn das Dienstprogramm, das vom Skript ausgeführt wird, versucht, die Skriptdatei selbst zu bearbeiten, dh sie durch eine neuere Version zu ersetzen? Lädt Perl das Skript und alle verknüpften Bibliotheken zu Beginn seiner Ausführung und ignoriert dann die Skriptdatei selbst, sofern nicht speziell darauf hingewiesen wird, dass sie damit umgehen? Oder vielleicht, würde die Hölle losbrechen, und die Ausführungen könnten oder könnten nicht scheitern, je nachdem, wie sich die neue Datei von der ausgeführten Datei unterscheidet?
Oder vielleicht etwas ganz anderes? Entschuldigung wenn das auf SuperUser — gehört scheint mir eine Grauzone.
Es ist nicht einmal so einfach wie Ihre Antwort, Sie können den Code an das Ende Ihrer Datei in einem 'BEGIN'-Block anhängen und es wird in das Programm aufgenommen. In mindestens der Version von Perl, auf die ich im Moment Zugriff habe, liest sie nicht die ganze Datei, bevor sie mit der Analyse beginnt, und 'BEGIN'-Blöcke werden ausgeführt, sobald die schließende geschweifte Klammer geparst wird. Dieses Verhalten ist wahrscheinlich sehr vom Betriebssystem abhängig. –