Las opciones de línea de comandos en Perl podrían ser útiles para realizar tareas más pequeñas de manera eficaz.
En este artículo, revisemos cómo usar las opciones de la línea de comandos de Perl para realizar las siguientes tareas:
- Editar el contenido del archivo
- Manejar separador de línea
- Comprobar errores de sintaxis
- Cargar módulos
- Realizar bucles
- Ejecutar código perl
- Establecer separador de línea de entrada
- Dividir la línea de entrada
- etc.,
1. Opción Perl -i:Editar contenido del archivo
Abre los archivos uno por uno y reemplaza el contenido con STDOUT.
Usemos el siguiente archivo sample.txt para convertir su contenido a mayúsculas como se muestra a continuación.
$ cat sample.txt Practical Extraction Report Language $ perl -pi -e “tr/[a-z]/[A-Z]/” sample.txt $ cat sample.txt PRACTICAL EXTRACTION REPORT LANGUAGE
También puede hacer una copia de seguridad del archivo original como se muestra a continuación:
$ 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
Para depurar un programa Perl, use el depurador Perl como explicamos anteriormente.
2. Opción Perl -l:Manejo del separador de línea
El separador de línea toma el valor octal como argumento. Los siguientes son algunos ejemplos de algunos separadores comunes y su valor octal.
Character Octal Value ========= ========= new line(\n) 012 tab(\t) 011 space 040 & 046
Nota:use el comando "man ascii" para conocer el valor octal de todos los caracteres.
Ejemplo de uso del separador de línea:
$ perl -p -l046 -e “tr/[a-z]/[A-Z]/”; bala Output : BALA&
Además, consulte las 6 funciones de evaluación de Perl para obtener lecturas adicionales.
3. Opción Perl -c:Comprobar errores de sintaxis
La opción -c compila su programa sin ejecutarlo para garantizar que no haya errores de sintaxis en su programa.
$ perl -c sample.pl
4. Opción Perl -M:para cargar módulos
Con la opción Perl -M, podemos cargar los módulos deseados como se muestra a continuación.
$ perl -MFile::Copy -e ‘move(“sample.txt”,”/tmp”);’
La opción -m también carga los módulos pero no importa nada. La siguiente es la diferencia:
- -MFile::Copiar es igual a “usar Archivo::Copiar; “
- -mFile::Copy es igual a "usar File::Copy()"
También discutimos sobre la opción -M en nuestros 20 consejos de programación Killer Perl anteriores.
5. Opción Perl -n y -p:bucle implícito
La opción -n envuelve su código dentro del ciclo como se muestra a continuación.
while(<>) { # perl code }
El siguiente fragmento describe esto mejor.
while(<>) { $_ =~ tr/[a-z]/[A-Z]/; }
Al usar -n, podemos reescribir el fragmento de código anterior como se muestra a continuación.
$ perl -n -e ‘tr/[a-z]/[A-Z]/;print’
La opción -p envuelve su código dentro del ciclo como se muestra a continuación.
while(<>) { # perl code print; }
El siguiente fragmento describe esto mejor.
while(<>) { $_ =~ tr/[a-z]/[A-Z]/; print; }
Al usar -p, podemos reescribir el fragmento de código anterior como se muestra a continuación.
$ perl -p -e “tr/[a-z]/[A-Z]/”;
Si desarrolla mucho código Perl, debe leer el libro de mejores prácticas de Perl.
6. Opción Perl -e:Ejecutar código perl en la propia línea de comando
El programa Perl simple o corto se puede escribir en la línea de comandos con esta opción, como se muestra a continuación.
$ perl -e “print \”Username : $ENV{USER}”
7. Opción Perl -0:Separador de registros de entrada
Usando la opción -0, podemos cambiar el "separador de registro de entrada" de nueva línea a otra cosa como se muestra a continuación.
$ perl -p -0046 -e “tr/[a-z]/[A-Z]/”; bala raja& Output : BALA RAJA&
En el ejemplo anterior, 046 es el valor octal para el carácter '&'. Entonces, después de recibir un carácter, Perl lo considera como el final de un registro y luego realiza la operación de traducción.
8. Opción Perl -a:dividir la línea de entrada
Divide $_ en @F con el delimitador como espacio.
El siguiente ejemplo demuestra la opción -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
Por defecto, toma espacio como delimitador y realiza la operación de división. El delimitador se puede cambiar usando la opción -F como se muestra a continuación.
$ cat emp_salary.txt bala:10000 rajesh:12300 kumar:14000 $ perl -n -l012 -F: -a -e ‘print “$F[1]“‘ emp_salary 10000 12300 14000