Le opzioni della riga di comando in Perl potrebbero essere utili per svolgere compiti più piccoli in modo efficace.
In questo articolo, esaminiamo come utilizzare le opzioni della riga di comando di Perl per eseguire le seguenti attività:
- Modifica il contenuto del file
- Separatore linea di gestione
- Controlla gli errori di sintassi
- Carica moduli
- Esegui loop
- Esegui codice perl
- Imposta il separatore della riga di input
- Dividi la riga di input
- ecc.
1. Opzione Perl -i:modifica il contenuto del file
Apre i file uno per uno e sostituisce il contenuto con STDOUT.
Usiamo il seguente file sample.txt per convertire il suo contenuto in maiuscolo come mostrato di seguito.
$ cat sample.txt Practical Extraction Report Language $ perl -pi -e “tr/[a-z]/[A-Z]/” sample.txt $ cat sample.txt PRACTICAL EXTRACTION REPORT LANGUAGE
Puoi anche eseguire il backup del file originale come mostrato di seguito:
$ 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
Per eseguire il debug di un programma Perl, utilizzare il debugger Perl come spiegato in precedenza.
2. Opzione Perl -l:gestione del separatore di riga
Il separatore di riga prende il valore ottale come argomento. Di seguito sono riportati alcuni esempi di alcuni separatori comuni e del suo valore ottale.
Character Octal Value ========= ========= new line(\n) 012 tab(\t) 011 space 040 & 046
Nota:usa il comando “man ascii” per conoscere il valore ottale di tutti i caratteri.
Esempio di utilizzo del separatore di riga:
$ perl -p -l046 -e “tr/[a-z]/[A-Z]/”; bala Output : BALA&
Inoltre, fare riferimento a 6 funzioni di valutazione di Perl per ulteriori letture.
3. Opzione Perl -c:controlla gli errori di sintassi
L'opzione -c compila il tuo programma senza eseguirlo per garantire che non siano presenti errori di sintassi nel tuo programma.
$ perl -c sample.pl
4. Opzione Perl -M:per caricare i moduli
Con l'opzione Perl -M, possiamo caricare i moduli desiderati come mostrato di seguito.
$ perl -MFile::Copy -e ‘move(“sample.txt”,”/tmp”);’
L'opzione -m esegue anche il caricamento dei moduli ma non importa nulla. Di seguito è la differenza:
- -MFile::Copy equivale a “use File::Copy; “
- -mFile::Copy equivale a "use File::Copy()"
Abbiamo anche discusso dell'opzione -M nei nostri precedenti 20 suggerimenti per la programmazione Killer Perl.
5. Opzione Perl -n e -p:ciclo implicito
L'opzione -n racchiude il codice all'interno del ciclo come mostrato di seguito.
while(<>) { # perl code }
Il seguente snippet lo descrive meglio.
while(<>) { $_ =~ tr/[a-z]/[A-Z]/; }
Usando -n, possiamo riscrivere lo snippet di codice sopra come mostrato di seguito.
$ perl -n -e ‘tr/[a-z]/[A-Z]/;print’
L'opzione -p racchiude il codice all'interno del ciclo come mostrato di seguito.
while(<>) { # perl code print; }
Il seguente snippet lo descrive meglio.
while(<>) { $_ =~ tr/[a-z]/[A-Z]/; print; }
Usando -p, possiamo riscrivere lo snippet di codice sopra come mostrato di seguito.
$ perl -p -e “tr/[a-z]/[A-Z]/”;
Se sviluppi molto codice Perl, dovresti leggere il libro delle migliori pratiche Perl.
6. Opzione Perl -e:esegue il codice perl nella stessa riga di comando
Un programma Perl semplice o breve può essere scritto nella stessa riga di comando con questa opzione come mostrato di seguito.
$ perl -e “print \”Username : $ENV{USER}”
7. Opzione Perl -0:Input Record Separator
Usando l'opzione -0, possiamo cambiare il "separatore di record di input" da newline a qualcos'altro come mostrato di seguito.
$ perl -p -0046 -e “tr/[a-z]/[A-Z]/”; bala raja& Output : BALA RAJA&
Nell'esempio sopra, 046 è il valore ottale per il carattere "&". Quindi, dopo aver ricevuto &carattere, Perl lo considera come la fine di un record e quindi esegue l'operazione di traduzione.
8. Opzione Perl -a:dividere la riga di input
Divide $_ in @F con il delimitatore come spazio.
L'esempio seguente mostra l'opzione -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
Per impostazione predefinita, occupa spazio come delimitatore ed esegue l'operazione di divisione. Il delimitatore può essere modificato utilizzando l'opzione -F come mostrato di seguito.
$ cat emp_salary.txt bala:10000 rajesh:12300 kumar:14000 $ perl -n -l012 -F: -a -e ‘print “$F[1]“‘ emp_salary 10000 12300 14000