Einbetten von Unix-Befehlen in Perl

July 15

Perl ist eine Programmiersprache mit umfangreichen Funktionen zum Bearbeiten von Skripts und Text. Perl-Programme erhalten einen Dolmetscher ausgeführt, damit die Variablen dynamisch typisiert sind. Beim Schreiben einer komplexen Anwendung, ist es sinnvoll, die aufrufen können Betriebssystem Befehle, so dass der Programmierer auf die Kernfunktion des seinen Code konzentrieren kann, ohne vom kratzen Funktionalität neu implementieren, die bereits durch bestehende bereitgestellt (und getestet) Betriebssystem-Code. Insbesondere können Sie Betriebssystembefehle einbetten, wenn Ihre Perl-Programm unter Unix ausgeführt wird.

Anweisungen

1 Die Argumente für den Unix-Befehl aus dem Perl-Code gemarshallt. Die spezifische Weise zur Durchführung dieses Schrittes hängt die beabsichtigte Funktion des Perl-Code. Beispielsweise für ein Programm, ein neues Verzeichnis unter einen bestimmten Punkt in der Dateisystem-Hierarchie erstellt, enthalten Sie die folgenden Zeilen im Code:

! / Usr/Local/bin/Perl #

$pointInFilesystem = $ARGV [0];

$nameNewDir = $ARGV [1];

Das erste Befehlszeilenargument der Perl-Anwendung ist der Punkt, wo das neue Verzeichnis erstellt werden wird; Das zweite Argument ist der Name, den das neue Verzeichnis haben wird.

2 Montieren Sie den Unix-Befehl in einer einzigen String-Variablen. Zum Beispiel für die Anwendung Verzeichnis-Erstellung gehören Sie folgenden Zeilen im Code:

$unixCommand = "Mkdir $pointInFilesystem". " / ". $nameNewDir

String-Variable "$unixCommand" enthält einen gesetzlichen Aufruf an Unix Befehl "Mkdir".

3 Rufen Sie den Unix-Befehl mit Perls "System" Befehl. Für die Verzeichnis-Erstellung-Anwendung, beispielsweise die folgende Zeile im Code:

System($unixCommand);

Wenn "System" ausgeführt wird, wird es einen neuen Prozess erstellen und beauftragen des Systems Argument--in diesem Fall ausgeführt, um ein neues Verzeichnis erstellen. Das Perl-Programm wird fortgesetzt, wenn der Prozess erstellt von "System" beendet wird. Sie können jede andere Unix oder Shell aufrufen Befehl mit "System."