Perl Language
Perl one-liners
Buscar..
Ejecutar algún código de Perl desde la línea de comandos
Los sencillos de una línea se pueden especificar como argumentos de línea de comando para perl usando el -e
(piense "ejecuta"):
perl -e'print "Hello, World!\n"'
Debido a las reglas de cotización de Windows, no puede usar cadenas entre comillas simples, pero tiene que usar una de estas variantes:
perl -e"print qq(Hello, World!\n)"
perl -e"print \"Hello, World!\n\""
Tenga en cuenta que para evitar romper el código antiguo, solo se puede usar la sintaxis disponible hasta Perl 5.8.x con -e
. Para usar algo más nuevo que pueda admitir su versión de Perl, use -E
lugar. Por ejemplo, para usar say
disponible desde 5.10.0 en más Unicode 6.0 desde> = v5.14.0 (también usa -CO
para asegurarse de que STDOUT
imprima en UTF-8):
perl -CO -E'say "\N{PILE OF POO}"'
Uso de cadenas entre comillas dobles en las líneas de Windows
Windows usa solo comillas dobles para ajustar los parámetros de la línea de comandos. Para usar comillas dobles en perl one-liner (es decir, para imprimir una cadena con una variable interpolada), tiene que escapar de ellas con barras invertidas:
perl -e "my $greeting = 'Hello'; print \"$greeting, world!\n\""
Para mejorar la legibilidad, puede usar un operador qq()
:
perl -e "my $greeting = 'Hello'; print qq($greeting, world!\n)"
Líneas de impresión que coinciden con un patrón (PCRE grep)
perl -ne'print if /foo/' file.txt
Mayúsculas y minúsculas:
perl -ne'print if /foo/i' file.txt
Reemplazar una subcadena con otra (PCRE sed)
perl -pe"s/foo/bar/g" file.txt
O en el lugar:
perl -i -pe's/foo/bar/g' file.txt
En Windows:
perl -i.bak -pe"s/foo/bar/g" file.txt
Imprimir solo ciertos campos
perl -lane'print "$F[0] $F[-1]"' data.txt
# prints the first and the last fields of a space delimited record
Ejemplo de CSV:
perl -F, -lane'print "$F[0] $F[-1]"' data.csv
Imprimir líneas 5 a 10
perl -ne'print if 5..10' file.txt
Editar archivo en el lugar
Sin una copia de seguridad ( no es compatible con Windows )
perl -i -pe's/foo/bar/g' file.txt
Con un file.txt.bak
copia de seguridad.txt.bak
perl -i.bak -pe's/foo/bar/g' file.txt
Con una copia de seguridad old_file.txt.orig
en el subdirectorio de backup
(siempre que exista este último):
perl -i'backup/old_*.orig' -pe's/foo/bar/g' file.txt
Leyendo todo el archivo como una cadena
perl -0777 -ne'print "The whole file as a string: --->$_<---\n"'
Nota: El -0777
es solo una convención. Cualquier -0400
y superior sería el mismo.
Subir archivo a mojolicious
perl -Mojo -E 'p("http://localhost:3000" => form => {Input_Type => "XML", Input_File => {file => "d:/xml/test.xml"}})'
El archivo d:/xml/test.xml
se cargará al servidor que escuche las conexiones en localhost:3000
( Fuente )
En este ejemplo:
-Mmodule
ejecuta use module;
antes de ejecutar tu programa
-E commandline
se usa para ingresar una línea de programa
Si no tiene un módulo ojo
, puede usar el comando cpanm ojo
para instalarlo
Para leer más sobre cómo ejecutar perl, use el comando perldoc perlrun
o lea aquí