Befehlszeilenoptionen in Perl könnten nützlich sein, um kleinere Aufgaben effektiv zu erledigen.
Lassen Sie uns in diesem Artikel überprüfen, wie Sie Perl-Befehlszeilenoptionen verwenden, um die folgenden Aufgaben auszuführen:
- Dateiinhalt bearbeiten
- Zeilentrennzeichen behandeln
- Syntaxfehler prüfen
- Module laden
- Schleife ausführen
- Perl-Code ausführen
- Eingabezeilentrenner setzen
- Teilen Sie die Eingabezeile auf
- usw.
1. Perl -i Option:Dateiinhalt bearbeiten
Es öffnet Dateien einzeln und ersetzt den Inhalt durch STDOUT.
Lassen Sie uns die folgende sample.txt-Datei verwenden, um ihren Inhalt wie unten gezeigt in Großbuchstaben umzuwandeln.
$ cat sample.txt Practical Extraction Report Language $ perl -pi -e “tr/[a-z]/[A-Z]/” sample.txt $ cat sample.txt PRACTICAL EXTRACTION REPORT LANGUAGE
Sie können die Originaldatei auch wie unten gezeigt sichern:
$ perl -pi.bak -e “tr/[a-z]/[A-Z]/” sample.txt $ cat sample.txt PRACTICAL EXTRACTION REPORT LANGUAGE $ cat sample.txt.bak Practical Extraction Report Language
Um ein Perl-Programm zu debuggen, verwenden Sie den Perl-Debugger, wie wir zuvor erklärt haben.
2. Perl -l Option:Umgang mit Zeilentrennzeichen
Das Zeilentrennzeichen nimmt den Oktalwert als Argument. Im Folgenden finden Sie einige Beispiele für einige gängige Trennzeichen und ihren Oktalwert.
Character Octal Value ========= ========= new line(\n) 012 tab(\t) 011 space 040 & 046
Hinweis:Verwenden Sie den Befehl „man ascii“, um den Oktalwert für alle Zeichen zu erfahren.
Beispielverwendung des Zeilentrennzeichens:
$ perl -p -l046 -e “tr/[a-z]/[A-Z]/”; bala Output : BALA&
Siehe auch 6 Perl-Eval-Funktionen für zusätzliche Lektüre.
3. Perl -c Option:Syntaxfehler prüfen
Option -c kompiliert Ihr Programm, ohne es auszuführen, um sicherzustellen, dass keine Syntaxfehler in Ihrem Programm vorhanden sind.
$ perl -c sample.pl
4. Perl -M Option :Zum Laden von Modulen
Mit der Option Perl -M können wir die gewünschten Module wie unten gezeigt laden.
$ perl -MFile::Copy -e ‘move(“sample.txt”,”/tmp”);’
Die Option -m lädt auch die Module, importiert aber nichts. Folgendes ist der Unterschied:
- -MFile::Copy entspricht „use File::Copy; „
- -mFile::Copy entspricht „use File::Copy()“
Wir haben die Option -M auch in unseren früheren 20 Killer-Perl-Programmiertipps besprochen.
5. Perl -n und -p Option:Implizite Schleife
Option -n schließt Ihren Code wie unten gezeigt in die Schleife ein.
while(<>) { # perl code }
Das folgende Snippet beschreibt dies besser.
while(<>) { $_ =~ tr/[a-z]/[A-Z]/; }
Durch die Verwendung von -n können wir das obige Code-Snippet wie unten gezeigt umschreiben.
$ perl -n -e ‘tr/[a-z]/[A-Z]/;print’
Option -p schließt Ihren Code wie unten gezeigt in die Schleife ein.
while(<>) { # perl code print; }
Das folgende Snippet beschreibt dies besser.
while(<>) { $_ =~ tr/[a-z]/[A-Z]/; print; }
Durch die Verwendung von -p können wir das obige Code-Snippet wie unten gezeigt umschreiben.
$ perl -p -e “tr/[a-z]/[A-Z]/”;
Wenn Sie viel Perl-Code entwickeln, sollten Sie das Best Practices-Buch von Perl lesen.
6. Perl -e Option:Perl-Code in der Kommandozeile selbst ausführen
Einfache oder kurze Perl-Programme können mit dieser Option, wie unten gezeigt, in die Befehlszeile selbst geschrieben werden.
$ perl -e “print \”Username : $ENV{USER}”
7. Perl -0 Option:Datensatztrennzeichen eingeben
Mit der Option -0 können wir das „Eingabedatensatztrennzeichen“ von Zeilenumbruch auf etwas anderes ändern, wie unten gezeigt.
$ perl -p -0046 -e “tr/[a-z]/[A-Z]/”; bala raja& Output : BALA RAJA&
Im obigen Beispiel ist 046 der Oktalwert für das Zeichen „&“. Nachdem es ein &-Zeichen empfangen hat, betrachtet Perl es als das Ende eines Datensatzes und führt dann die Übersetzungsoperation durch.
8. Perl -a Option:Teilt die Eingabezeile auf
Es teilt $_ in @F mit dem Trennzeichen als Leerzeichen.
Das folgende Beispiel demonstriert die Option -a.
$ cat emp_salary.txt bala 10000 rajesh 12300 kumar 14000 $ perl -n -l012 -a -e ‘print “$F[1]“‘ emp_salary.txt 10000 12300 14000
Standardmäßig nimmt es Leerzeichen als Trennzeichen und führt die Teilungsoperation aus. Das Trennzeichen kann wie unten gezeigt mit der Option -F geändert werden.
$ cat emp_salary.txt bala:10000 rajesh:12300 kumar:14000 $ perl -n -l012 -F: -a -e ‘print “$F[1]“‘ emp_salary 10000 12300 14000