GNU/Linux >> Tutoriales Linux >  >> Linux

20 consejos de programación Killer Perl para principiantes en UNIX / Linux OS

Si usted es un administrador de sistemas Linux que escribe código perl ocasionalmente (o) un desarrollador que quiere aprender el lenguaje de programación perl , estos 20 consejos básicos de programación en perl y los trucos explicados en este artículo te ayudarán a empezar.

1. Enumere todos los módulos Perl instalados desde la línea de comandos de Unix

Obtenga una lista de todos los módulos perl instalados como se muestra a continuación.

$ perl -MFile::Find=find -MFile::Spec::Functions -Tlw -e 'find { wanted => sub { print canonpath $_ if /\.pm\z/ }, no_chdir => 1 }, @INC'

/usr/lib/perl5/vendor_perl/5.8.8/i386-linux-thread-multi/HTML/Filter.pm
/usr/lib/perl5/vendor_perl/5.8.8/i386-linux-thread-multi/HTML/LinkExtor.pm
/usr/lib/perl5/vendor_perl/5.8.8/i386-linux-thread-multi/HTML/PullParser.pm
/usr/lib/perl5/vendor_perl/5.8.8/i386-linux-thread-multi/HTML/Parser.pm
/usr/lib/perl5/vendor_perl/5.8.8/i386-linux-thread-multi/HTML/TokeParser.pm
.....

En el ejemplo anterior,

  • Archivo::Buscar y Archivo::Especificación::Funciones module se utilizan para enumerar todos los módulos instalados.
  • Opción -M carga el módulo. Ejecuta usar módulo antes de ejecutar el script
  • opción -T habilita la verificación de corrupción, lo que indica a Perl que realice un seguimiento de los datos del usuario y evite hacer algo inseguro con ellos. Aquí esta opción se usa para evitar tomar el nombre del directorio actual del variable @INC y enumerar los archivos .pm disponibles del directorio de forma recursiva.
  • opción -l habilita el procesamiento automático de final de línea en la salida. Las declaraciones impresas tendrán el nuevo separador de línea (\n) agregado al final de cada línea.
  • opción -w imprime cualquier mensaje de advertencia.
  • opción -e indica que la siguiente cadena debe interpretarse como un script perl (es decir, una secuencia de comandos).

2. Enumere todos los módulos de Perl instalados desde un script de Perl (Usando ExtUtils::Paquete instalado)

Utilice el siguiente fragmento de código perl para obtener una lista de los módulos perl instalados.

my $Inst = ExtUtils::Installed->new();
my @Modules = $Inst->modules();
print "Current List of Installed PERL Modules:\n\n";
foreach my $mod(@Modules){
print "$mod\n";
}

Nota :El módulo ExtUtils::Installed no está preinstalado con el programa perl. Entonces deberías instalarlo desde cpan.

3. Mostrar módulos de Perl mediante el comando Perldoc

perldoc perlmodlib enumera todos los módulos que vienen preinstalados con el programa perl.

$ perldoc perlmodlib

       Attribute::Handlers Simpler definition of attribute handlers
       AutoLoader  Load subroutines only on demand
       .........

Nota: También puede usar el comando 'perldoc perllocal' para identificar módulos perl adicionales que están instalados.

$ perldoc perllocal

El comando perldoc perllocal enumera todos los módulos opcionales instalados en el sistema con la siguiente información:

  • Fecha de instalación
  • Ubicación del directorio donde está instalado el módulo perl
  • Número de versión del módulo Perl
  • etc,

4. Ver la documentación de Perl desde la línea de comandos de Unix

Puede usar el comando perldoc o man para obtener ayuda sobre un módulo perl en particular, como se muestra a continuación.

$ perldoc Regexp::Common

(or)

$ man Regexp::Common

Si el documento de perl no es suficiente, use la opción de perldoc -m,  para ver tanto el código fuente como la documentación del módulo sin formato del módulo de perl especificado.

$ perldoc -m Regexp::Common

Para ver la documentación sobre una función específica de Perl, use la opción -f, como se muestra a continuación.

$ perldoc -f splice

5. Vea la documentación de Perl en línea (o descárguela para usarla sin conexión)

Un montón de excelentes tutoriales de perl están disponibles en línea en la documentación de programación de Perl.

Desde este sitio web, también puede descargar la versión HTML o PDF de la documentación de Perl para verla sin conexión.

  • Versión completa (contiene archivos HTML y PDF):perldoc.tar.gz
  • Versión Lite (solo contiene archivos HTML):perldoc-html.tar.gz

6. Lea la documentación de Perl usando Podbrowser

Descargue el navegador de pods. Puede explorar los módulos, las funciones y la documentación de Perl instalados visualmente desde el podbrowser. Desde su sitio web:

PodBrowser is a documentation browser for Perl.
You can view, search and print documentation for Perl's
builtin functions, its "perldoc" pages, pragmatic modules
and the default and user-installed modules.

Nota: También puede usar el editor Vim como Perl-IDE como discutimos anteriormente.

7. Modificar la configuración del módulo CPAN manualmente

Para instalar los módulos perl desde la línea de comandos de Linux, use CPAN. Discutimos anteriormente sobre cómo instalar módulos perl, tanto manualmente como usando el comando CPAN.

La primera vez que utiliza el módulo CPAN de Perl ( perl -MCPAN ), se ejecuta un script para configurar varias opciones. Por ejemplo, configura la ubicación de los archivos tar, gzip y unzip, el tamaño de caché para el directorio de compilación, la ubicación del archivo fuente, etc.

Para reconfigurar manualmente los archivos de configuración del módulo CPAN, puede editar uno de los siguientes archivos.

  • ~/.cpan/CPAN/MyConfig.pm – Archivo de configuración de Perl CPAN específico del usuario
  • /etc/perl/CPAN/Config.pm – El archivo de configuración de CPAN de Perl para todo el sistema se almacena en algún lugar del árbol de directorios del módulo de Perl.
$ vim ~/.cpan/CPAN/MyConfig.pm

(and / or)

$ vim /etc/perl/CPAN/Config.pm

8. Modificar las configuraciones del módulo CPAN de forma interactiva

Inicie el shell cpan como se muestra a continuación y ejecute o confi init , que le preguntará "¿está listo para la configuración manual?", dé su opción (Sí / No) para continuar. Esto enumerará todos los parámetros de configuración junto con su valor.

$ perl -MCPAN -e shell

cpan> o conf init

cpan> o conf

9. Verifique si hay un módulo Perl instalado

Si desea saber si un módulo perl (por ejemplo, Regexp::Common) está instalado, ejecute el siguiente comando. Si obtiene “1” como salida, se instala el módulo perl especificado. De lo contrario, recibirá el mensaje de error que se muestra a continuación.

$ perl -MRegexp::Common -le 'print 1'

Can't locate Regexp/Common.pm in @INC (@INC contains: /etc/perl /usr/local/lib/perl/5.8.8 /usr/local/share/perl/5.8.8 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.8 /usr/share/perl/5.8 /usr/local/lib/site_perl .).

Nota: También puede verificar si el módulo perl está instalado usando el comando perldoc o man. Si el módulo perl está instalado, la página del manual del módulo se abrirá correctamente. Si no, dirá "no se encontró manual/documentación para este módulo"

$ perldoc Regexp::Common

$ man Regexp::Common

10. Listar los directorios donde se encuentran los módulos de Perl

La matriz perl @INC contiene la lista de lugares en los que las construcciones "hacer EXPR", "requerir" o "usar" buscan sus archivos de biblioteca. El siguiente resumen muestra el contenido de la matriz @INC perl:

$ perl -e 'foreach $folder (@INC) { print "$folder\n";}'

11. Comprobar la versión de un módulo Perl instalado

Para verificar el número de versión de un módulo, use el siguiente comando.

#-- check the version number of CGI module
$ perl -MCGI -e 'print "$CGI::VERSION \n"'

#-- check the version number of Regexp::Common module
$ perl -MRegexp::Common -e 'print "$Regexp::Common::VERSION \n"'

Nota: Además, asegúrese de leer nuestra reseña sobre el libro Perl Best Practices.

12. Especifique la versión mínima del módulo Perl para usar

A veces, es posible que desee utilizar una versión específica de un módulo de Perl en su programa. Para evitar el uso de una versión anterior de ese módulo, agregue el número de versión mínimo que desee en la declaración de uso del 'módulo' como se muestra a continuación.

#-- Use version 5.8 of later of module LWP
use LWP 5.8

Nota: Su programa perl se cerrará con un mensaje de error apropiado si la versión del módulo instalado es anterior a la versión que especificó en el comando de uso.

13. Módulos útiles de Perl para desarrollar aplicaciones web

Si está desarrollando una aplicación web, es posible que desee considerar el uso de los siguientes módulos de Perl.

  • CGI – Módulo de propósito general para crear páginas web
  • Plantilla – Kit de herramientas de plantillas para generar contenido web dinámico
  • LWP – LWP se utiliza para obtener contenido web
  • WWW::Mecanizar – Use esto para automatizar la interacción con un sitio web

14. Determine el sistema operativo en el que se ejecuta el script Perl

El nombre del sistema operativo subyacente se almacena en la variable $^O. Los siguientes son algunos de los valores comunes de $^O

  • linux – Linux
  • MSWin32:Windows
  • aix – AIX
  • solaris – Solaris

Nota: El valor almacenado en $^O contiene solo el nombre del sistema operativo, no el número de versión. Para determinar el número de lanzamiento, considere usar POSIX::uname() del paquete POSIX.

15. Definir valores constantes dentro del script Perl

La mejor manera de definir valores constantes es usar Perl Readonly Constante módulo como se muestra a continuación.

use Readonly;
Readonly my $PI => 3.1415926535;

(or)

use Constant PI => 3.1415926535;

Tenga en cuenta lo siguiente:

  • Con el módulo de solo lectura, puede definir escalares, hashes y matrices de solo lectura.
  • Si intenta modificar una variable de solo lectura, el programa morirá.

16. Determine el usuario del sistema operativo y/o el grupo del sistema operativo que ejecuta un script de Perl

Utilice las siguientes variables predefinidas para obtener la información de usuario y grupo del proceso actual:

  • $ – identificación de usuario real (uid); valor único
  • $> – id de usuario efectivo (euid); valor único
  • $( – ID de grupo real (gid); lista (separada por espacios) de grupos
  • $) – id de grupo efectivo (egid); lista (separada por espacios) de grupos

Tenga en cuenta lo siguiente:

  • Esta información se aplica solo a los sistemas Unix
  • Los valores que contienen estas variables son números enteros.
  • Para obtener los nombres de usuario y grupo, use '(getpwuid($<))[0]' (para información de usuario) y 'getgrgid($()' (para grupos).

17. Ejecutando Comandos Externos

Hay muchas formas de ejecutar comandos externos desde Perl como se explica a continuación.

  • sistema() – desea ejecutar un comando y no desea capturar su salida
  • ejecutivo – no desea volver al script perl de llamada
  • comillas invertidas – desea capturar la salida del comando
  • abrir – desea canalizar el comando (como entrada o salida) a su secuencia de comandos perl

18. Parse Plain Messy Perl Script usando B::Deparse

¿Tienes un trozo de código Perl ofuscado o simplemente desordenado y difícil de leer? El B::Deparse módulo puede ser capaz de ayudar. Compila, luego descompila el programa que se le da, expandiéndolo y formateándolo muy bien. Elimina las líneas de comentarios escritas en el programa perl.

Para ejecutarlo en la línea de comandos, escriba "perl -MO=Deparse prog.pl". Aquí hay un ejemplo de su uso,

Primero cree el programa de entrada:

$ cat scary.pl
for(74,117,115,116){$::a.=chr};(($_.='qwertyui')&&
(tr/yuiqwert/her anot/))for($::b);for($::c){$_.=$^X;
/(p.{2}l)/;$_=$1}$::b=~/(..)$/;print("$::a$::b $::c hack$1.");

Pase el script de Perl Scary.pl al módulo Deparse

$ perl -MO=Deparse scary.pl
foreach $_ (74, 117, 115, 116) {
$a .= chr $_;
}
;
$_ .= 'qwertyui' and tr/eiqrtuwy/nr oteah/ foreach ($b);
foreach $_ ($c) {
$_ .= $^X;
/(p.{2}l)/;
$_ = $1;
}
$b =~ /(..)$/;
print "$a$b $c hack$1.";
scary.pl syntax OK

19. Lista de controladores DBI instalados

DBI es el módulo de interfaz de base de datos estándar para Perl. El siguiente programa Perl imprime una lista de todos los controladores DBI instalados.

use strict;
use warnings;

use DBI;

print map "$_\n",DBI->available_drivers;

Ejemplo de salida del programa anterior:

DBM
ExampleP
File
Proxy
Sponge
mysql

Si el controlador que necesita no está instalado, use CPAN para encontrar el módulo DBD (controlador de base de datos) correcto.

20. Variable especial de expresión regular

Una de las funciones más útiles o la función de manipulación de cadenas más potente de Perl es la expresión regular.

En el centro de esto se encuentra la expresión regular que comparten muchas otras utilidades de UNIX.
Perl tiene una gran cantidad de variables especiales que se completan después de cada coincidencia de expresión regular m// o s///.

  • $1, $2, $3, etc. mantienen las referencias anteriores.
  • $+ contiene la última referencia inversa (el número más alto).
  • $&(símbolo de dólar) contiene toda la coincidencia de expresiones regulares.
  • $' (dólar seguido de un apóstrofe o comilla simple) contiene la parte de la cadena después (a la derecha) de la coincidencia de expresiones regulares.
  • $` (tick inverso del dólar) contiene la parte de la cadena anterior (a la izquierda) de la coincidencia de expresiones regulares.

No se recomienda el uso de estas variables en los scripts de Perl cuando el rendimiento importa, ya que hace que Perl ralentice todo. coincidencias de expresiones regulares en todo el script de Perl.

Todas estas variables son de solo lectura y persisten hasta que se intenta la siguiente coincidencia de expresiones regulares.
Ejemplo

$string = "This is the geek stuff article for perl learner";
$string =~ /the (g.*) stuff(.*) /;
print "Matched String=>$&\nBefore Match=>$`\nAfter Match=>$'\nLast Paren=>$+\nFirst Paren=>$1\n";

Salida del ejemplo anterior:

Matched String=>the geek stuff article for perl
Before Match=>This is
After Match=>learner
Last Paren=> article for perl
First Paren=>geek

Linux
  1. 3 consejos para imprimir con Linux

  2. 6 herramientas de código abierto y consejos para asegurar un servidor Linux para principiantes

  3. 8 consejos para la línea de comandos de Linux

  4. Comando killall de Linux para principiantes (8 ejemplos)

  5. Cómo instalar módulos Perl en Linux

Tutorial de comando Linux w para principiantes (5 ejemplos)

Tutorial de comandos ss de Linux para principiantes (8 ejemplos)

Comando de localización de Linux para principiantes (8 ejemplos)

16 ejemplos prácticos del comando Linux LS para principiantes

Comando mv de Linux explicado para principiantes (8 ejemplos)

Accesos directos del editor Linux VI, consejos y trucos de productividad para principiantes