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):

5.14.0
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



Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow