Befehlszeilenargumente werden auf die gleiche Weise wie in jeder anderen Sprache an ein Perl-Programm gesendet. Das @ARGV-Array enthält das Befehlszeilenargument. Es besteht keine Notwendigkeit, Variablen zu verwenden, selbst wenn Sie „use strict“ verwenden. Standardmäßig ist diese Variable immer vorhanden und Werte aus der Befehlszeile werden automatisch in diese Variable eingefügt. Um auf die Befehlszeilenargumente Ihres Skripts zuzugreifen, müssen Sie lediglich aus dem @ARGV-Array lesen.
Perl erlaubt die Verwendung des @ARGV-Arrays als Dateinamen, indem es verwendet wird. Das $ARGV enthält beim Lesen aus den Namen der aktuellen Datei.
@ARGV-Array-Elemente
Das @ARGV-Array funktioniert genauso wie ein normales Array. Sein erstes Argument ist $ARGV[0], das zweite $ARGV[1] und so weiter.
Beispiel für ein Perl-Befehlszeilenargument
Sehen wir uns ein einfaches Beispiel zum Drucken von Befehlszeilenargumenten an. In diesem Beispiel drucken wir eine Willkommensnachricht mit dem Namen des Benutzers als Argument aus der Befehlszeile. Wir benötigen zwei Befehlszeilenargumente als Vor- und Nachnamen des Benutzers.
Schritt 1 Erstellen Sie ein Skript willkommen.pl in Ihrem System.
#!/usr/bin/perl -w # (1) check for the number of command-line arguments entered $number_args = $#ARGV + 1; if ($number_args != 2) { print 'Wrong entry. Please enter your full name. '; exit; } # (2) if two command line arguments received, $firstName=$ARGV[0]; $lastName=$ARGV[1]; print 'Welcome $firstName $lastName at JavaTpoint. ';
Im obigen Skript wird zunächst geprüft, ob zwei Befehlszeilenargumente bereitgestellt werden oder nicht. Wenn nicht, wird ein falscher Eingabefehler ausgegeben. Und wenn ja, werden diese Argumente als $ARGV[0] bzw. $ARGV[1] verarbeitet.
Schritt 2 Führen Sie das Skript in Ihrer Konsole aus als perl willkommen.pl Christian Gray
Hinweis: Bevor Sie diesen Befehl erteilen, stellen Sie sicher, dass Sie sich im Verzeichnis befinden, das Ihr Skript „welcome.pl“ enthält
Dies ist die Ausgabe, die Sie in Ihrer Konsole erhalten.
Schritt 2 Führen Sie das Skript in Ihrer Konsole aus als perl willkommen.pl Christian
Hier übergeben wir nur ein Argument von der Befehlszeile.
In der Ausgabe sehen Sie die falsche Eingabemeldung für die Übergabe eines Arguments.
Beispiel für Perl-Befehlszeilenargumente mit Schleife
Jetzt führen wir eine Schleife aus, um die Befehlszeilenargumente auszugeben. In diesem Beispiel können Sie beliebig viele Argumente eingeben.
Schritt 1 Erstellen Sie ein Skript loop.pl in Ihrem System.
#!/usr/bin/perl $get_args = $#ARGV + 1; print 'Total command line arguments received: $get_args '; foreach $argument (0 .. $#ARGV) { print '$ARGV[$argument] '; }
Schritt 2 Führen Sie das Skript in Ihrer Konsole aus als perl loop.pl a b c d e f g h
Schauen Sie sich die Ausgabe oben an. Sie zeigt auch die Gesamtzahl der auf der Befehlszeile übergebenen Argumente an. Hier haben wir 8 Argumente übergeben.
Perl Getopt::Long
Die einfachen Befehlszeilenoptionen werden mit der Option ?s ausgeführt. Komplexe Befehlszeilenoptionen werden mit Getopt::Std und Getopt::Long ausgeführt.
Getopt steht für GetOptions . Es verarbeitet den Inhalt von @ARGV basierend auf der Konfiguration, die wir ihm geben. Basierend auf der Verarbeitung wird der Wert „true“ oder „false“ zurückgegeben.
Beispiel:
In diesem Beispiel erhalten wir das Alter des Benutzers gut über die Befehlszeile.
use strict; use warnings; use 5.010; use Getopt::Long qw(GetOptions); my $x; GetOptions('from=s' => $x) or die 'Usage: $0 --from NAME '; say'According to your age which is $x:'; if ($x >=18) { say 'You are eligible to vote'; }
Wir haben eine Variable deklariert $x in dem der eingefügte Wert gespeichert wird --aus von der Standardkonsole aus. Der von=s deklariert den aufgerufenen Befehlszeilenparameter --aus mit einer Zeichenfolge dahinter. Es wird weiter auf die Variable $x abgebildet. Der Backslash () bedeutet, dass wir einen Verweis auf die Variable übergeben.
Dieses Skript wechselt zu Die Teil nur, wenn wir dieses Skript ausführen, indem wir etwas übergeben, das wie ein Parametername aussieht und mit a beginnt (-) wird aber in diesem Skript nicht deklariert.
Jetzt werden wir dieses Programm ausführen.
Ausgabe:
Schauen Sie sich die Ausgabe an. Nach Eingabe des Alters auf der Konsole erhalten wir die obige Ausgabe.