Perl: Aufruf eines perl-Skript aus einem anderen
Ich habe ein perl script, welches ein anderes script aufruft. Rufe ich es über backticks und übergabe-argument an das Skript und es funktioniert gut.
`CQPerl call_script.pl $agr1 $agr2 $arg3`;
Aber bitte vorschlagen, wenn es noch eine bessere Möglichkeit, dies zu tun. Wie kann ich überprüfen, ob das Skript fehlerhaft ist, weil der aufrufende Skript oder das Skript, das aufgerufen wurde. Wie mache ich, dass der check aus dem aufrufenden Skript selbst?
Backticks erfassen die standard-Ausgabe von dem anderen Skript; Sie sind dann nichts zu tun, sehr viel mit ihm (wie die Zuordnung zu etwas). Sind Sie sicher, dass Sie brauchen, backticks?
Verwenden
Verwenden
autodie
! stackoverflow.com/questions/3477916/using-perls-systemInformationsquelleAutor iDev | 2012-08-21
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie wan ' T zu tun, Fehlerprüfung, backticks kann eine falsche Ansatz. Sie wollen wahrscheinlich verwenden Sie die
system
Funktion. Finden Sie die Dokumentation für alle details der Fehlerbehandlung, Beispiele inklusive.Perl hat eine Reihe von Möglichkeiten zur Ausführung anderer Skripte /Befehle:
qx{}
Wenn Sie möchten, Lesen Sie die Ausgabe, nachdem das Programm beendet wurdeexec
, Wenn Sie wan ' T, um weiterhin Ihren Prozess als weiteres Programm kehrt nie zurück, wenn erfolgreichsystem
, Wenn Sie interessiert sind, nur den Erfolg oder Misserfolg des Befehlsopen
Wenn Sie möchten Pfeife-Informationen, die zu oder von der Befehldo
undrequire
Ausführen, ein anderes Perl-Skript hier. Ähnlich wie C-s#include
open
so dass Sie Zugriff aufSTDIN
,STDOUT
undSTDERR
des Programms ausgeführt. Siehe die entsprechenden Teile der perlipc für weiterführende Informationen zu erhalten.Und stets mit der multi-argument-Formen, diese Anrufe zu vermeiden, shell-escaping (kann lästig und sehr unsicher).
InformationsquelleAutor amon
Überprüfen Sie den Wert der perl-spezialvariablen
$?
um festzustellen, ob es ein Fehler war.InformationsquelleAutor David