Perl Language
Perlin one-liner
Ricerca…
Esegui del codice Perl dalla riga di comando
È possibile specificare semplici one-liner come argomenti della riga di comando su perl utilizzando l' -e
(si pensi "execute"):
perl -e'print "Hello, World!\n"'
A causa delle regole di quoting di Windows, non è possibile utilizzare stringhe tra virgolette singole ma è necessario utilizzare una di queste varianti:
perl -e"print qq(Hello, World!\n)"
perl -e"print \"Hello, World!\n\""
Nota che per evitare di rompere il vecchio codice, solo la sintassi disponibile fino a Perl 5.8.x può essere usata con -e
. Per usare qualcosa di nuovo che la tua versione perl potrebbe supportare, usa -E
invece. Ad esempio, utilizzare say
disponibile da 5.10.0 in aggiunta a Unicode 6.0 da> = v5.14.0 (utilizza anche -CO
per assicurarsi che STDOUT
stampi UTF-8):
perl -CO -E'say "\N{PILE OF POO}"'
Utilizzo di stringhe con doppie virgolette nelle one-liner di Windows
Windows utilizza solo virgolette doppie per racchiudere i parametri della riga di comando. Per utilizzare le virgolette doppie in perl one-liner (cioè per stampare una stringa con una variabile interpolata), è necessario sfuggire a esse con i backslash:
perl -e "my $greeting = 'Hello'; print \"$greeting, world!\n\""
Per migliorare la leggibilità, è possibile utilizzare un operatore qq()
:
perl -e "my $greeting = 'Hello'; print qq($greeting, world!\n)"
Stampa linee corrispondenti a un modello (PCRE grep)
perl -ne'print if /foo/' file.txt
Case-insensitive:
perl -ne'print if /foo/i' file.txt
Sostituire una sottostringa con un'altra (PCRE sed)
perl -pe"s/foo/bar/g" file.txt
O sul posto:
perl -i -pe's/foo/bar/g' file.txt
Su Windows:
perl -i.bak -pe"s/foo/bar/g" file.txt
Stampa solo determinati campi
perl -lane'print "$F[0] $F[-1]"' data.txt
# prints the first and the last fields of a space delimited record
Esempio CSV:
perl -F, -lane'print "$F[0] $F[-1]"' data.csv
Stampa le righe da 5 a 10
perl -ne'print if 5..10' file.txt
Modifica il file sul posto
Senza una copia di backup ( non supportata su Windows )
perl -i -pe's/foo/bar/g' file.txt
Con una copia di backup file.txt.bak
perl -i.bak -pe's/foo/bar/g' file.txt
Con una copia di backup old_file.txt.orig
nella sottodirectory di backup
(a condizione che esista la seconda):
perl -i'backup/old_*.orig' -pe's/foo/bar/g' file.txt
Leggere l'intero file come una stringa
perl -0777 -ne'print "The whole file as a string: --->$_<---\n"'
Nota: il -0777
è solo una convenzione. Qualsiasi -0400
e oltre sarebbe lo stesso.
Carica il file in mojolicious
perl -Mojo -E 'p("http://localhost:3000" => form => {Input_Type => "XML", Input_File => {file => "d:/xml/test.xml"}})'
Il file d:/xml/test.xml
verrà caricato sul server che ascolta le connessioni su localhost:3000
( Source )
In questo esempio:
-Mmodule
esegue il use module;
prima di eseguire il tuo programma
-E commandline
viene utilizzata per immettere una riga del programma
Se non si dispone di un modulo ojo
è possibile utilizzare il comando cpanm ojo
per installarlo
Per saperne di più su come eseguire perl utilizzare perldoc perlrun
comando perldoc perlrun
o leggere qui