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

5.14.0
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í



Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow