Možnosti příkazového řádku v Perlu mohou být užitečné pro efektivní provádění menších úkolů.
V tomto článku se podíváme na to, jak používat možnosti příkazového řádku Perlu k provádění následujících úkolů:
- Upravit obsah souboru
- Používejte oddělovač řádků
- Zkontrolujte chyby syntaxe
- Načíst moduly
- Provádět opakování
- Spustit kód perl
- Nastavte oddělovač vstupních řádků
- Rozdělit vstupní řádek
- atd.
1. Možnost Perl -i:Upravit obsah souboru
Otevírá soubory jeden po druhém a obsah nahradí STDOUT.
Pomocí následujícího souboru sample.txt převedeme jeho obsah na velká písmena, jak je uvedeno níže.
$ cat sample.txt Practical Extraction Report Language $ perl -pi -e “tr/[a-z]/[A-Z]/” sample.txt $ cat sample.txt PRACTICAL EXTRACTION REPORT LANGUAGE
Můžete také zálohovat původní soubor, jak je znázorněno níže:
$ 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
Chcete-li ladit program v Perlu, použijte debugger Perl, jak jsme si vysvětlili dříve.
2. Možnost Perl -l:Manipulace s oddělovačem řádků
Oddělovač řádků má jako argument osmičkovou hodnotu. Následuje několik příkladů některých běžných oddělovačů a jejich osmičkové hodnoty.
Character Octal Value ========= ========= new line(\n) 012 tab(\t) 011 space 040 & 046
Poznámka:použijte příkaz „man ascii“ ke zjištění osmičkové hodnoty pro všechny znaky.
Příklad použití oddělovače řádků:
$ perl -p -l046 -e “tr/[a-z]/[A-Z]/”; bala Output : BALA&
Další čtení naleznete také v části 6 funkcí Perl eval.
3. Možnost Perl -c:Zkontrolujte chyby syntaxe
Volba -c zkompiluje váš program bez jeho spuštění, aby bylo zajištěno, že ve vašem programu nejsou žádné syntaktické chyby.
$ perl -c sample.pl
4. Možnost Perl -M :Pro načítání modulů
S volbou Perl -M můžeme načíst požadované moduly, jak je ukázáno níže.
$ perl -MFile::Copy -e ‘move(“sample.txt”,”/tmp”);’
Volba -m také načte moduly, ale nic neimportuje. Rozdíl je následující:
- -MFile::Copy se rovná „use File::Copy; “
- -mFile::Copy se rovná „use File::Copy()“
O Option -M jsme také hovořili v našich dřívějších 20 Killer Perl Programming Tips.
5. Perl -n a -p Možnost:Implicitní opakování
Volba -n zabalí váš kód do smyčky, jak je znázorněno níže.
while(<>) { # perl code }
Následující úryvek to popisuje lépe.
while(<>) { $_ =~ tr/[a-z]/[A-Z]/; }
Pomocí -n můžeme přepsat výše uvedený fragment kódu, jak je znázorněno níže.
$ perl -n -e ‘tr/[a-z]/[A-Z]/;print’
Volba -p zabalí váš kód do smyčky, jak je znázorněno níže.
while(<>) { # perl code print; }
Následující úryvek to popisuje lépe.
while(<>) { $_ =~ tr/[a-z]/[A-Z]/; print; }
Pomocí -p můžeme přepsat výše uvedený fragment kódu, jak je znázorněno níže.
$ perl -p -e “tr/[a-z]/[A-Z]/”;
Pokud vyvíjíte hodně kódu v Perlu, měli byste si přečíst knihu doporučených postupů v Perlu.
6. Možnost Perl -e:Spustit kód perl v samotném příkazovém řádku
Jednoduchý nebo krátký program v Perlu lze napsat v samotném příkazovém řádku s touto volbou, jak je uvedeno níže.
$ perl -e “print \”Username : $ENV{USER}”
7. Možnost Perl -0:Zadejte oddělovač záznamů
Pomocí volby -0 můžeme změnit „oddělovač vstupních záznamů“ z nového řádku na něco jiného, jak je uvedeno níže.
$ perl -p -0046 -e “tr/[a-z]/[A-Z]/”; bala raja& Output : BALA RAJA&
Ve výše uvedeném příkladu je 046 osmičková hodnota znaku „&“. Poté, co obdrží znak &, jej Perl považuje za konec záznamu a poté provede operaci překladu.
8. Perl -a Možnost:Rozdělit vstupní řádek
Rozdělí $_ na @F s oddělovačem jako mezerou.
Následující příklad ukazuje volbu -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
Ve výchozím nastavení zabírá místo jako oddělovač a provádí operaci rozdělení. Oddělovač lze změnit pomocí volby -F, jak je uvedeno níže.
$ cat emp_salary.txt bala:10000 rajesh:12300 kumar:14000 $ perl -n -l012 -F: -a -e ‘print “$F[1]“‘ emp_salary 10000 12300 14000