¡Ya estamos en Twitter!

Perl en Español

  1. Home
  2. Tutoriales
  3. Foro
  4. Artículos
  5. Donativos
  6. Publicidad

Aprovechando CPAN y los módulos de perl

por

Hay un viejo dicho que dice: "No inventes el hilo negro otra vez". Y este dicho tiene mucha razón y lo podemos comprobar en todas las áreas de nuestra vida, inclusive en la programación.

En este artículo vamos a hablar de como optimizar nuestro tiempo y nuestros resultados aprendiendo a usar los módulos que CPAN tiene.

¿Qué es CPAN?

CPAN - "The Comprehensive Perl Archive Network", básicamente es un directorio central donde se pueden encontrar módulos y programas creados por terceras personas en perl.

Su dirección es http://search.cpan.org/, donde veremos un mecanismo de búsqueda junto con él directorio organizado en categorías específicas.

Aquí podemos buscar módulos creados por otras personas que podemos descargar y usar en nuestros propios desarrollos.

¿Qué es un módulo?

Un módulo es una parte independiente de algo, en este caso los módulos de perl son partes de códigos independientes que podemos ensamblar con nuestros propios programas.

Estos módulos son pedazos de código diseñados para ser rehusados por otros programadores que se vean en la misma necesidad.

Usando un módulo

Muy bien, ya sabemos que es CPAN y que es un módulo de perl, pero ¿y ahora qué?

Lo primero que necesitamos es la necesidad. Como siempre vamos a usar un ejemplo específico para que podamos comprender bien de que es lo que estamos hablando.

Digamos que tenemos que crear un desarrollo en perl, lo que nos pidieron es un programa que corra diariamente en un sistema operativo Windows, se conecte a un sitio FTP y haga ciertas rutinas para después mandar un mail con información de lo que hizo el programa.

Entonces, viendo el problema con el que estamos presentes, vemos que tenemos dos necesidades:

  1. El código necesario para conectarte a un sitio FTP.
  2. El código necesario para enviar un mail.
Aquí tenemos dos opciones, podemos crear el código completo desde cero, cosa que se puede hacer pero nos llevaría bastante tiempo, o lo mejor, podemos entrar a CPAN para buscar algún módulo creado ya para nuestras necesidades.

Si son flojos como yo y aprecian su tiempo, sé que irán por la segunda opción, así que entramos a CPAN y ponemos en la cajita de búsqueda FTP y apretamos el botón que dice "CPAN Search".

Esperamos unos momentos y se nos enlista los resultado que hubo. Cada resultado viene con el nombre del módulo y una pequeña descripción del módulo.

Esta parte es importante, pues ahora vamos a seleccionar un módulo que cubra nuestras necesidades. Si leemos cada una de las descripciones, vemos que la mejor opción es aquel que se llama Net::FTP. Cliqueamos sobre el link y nos llevará a un pequeño manual del módulo, el cual se llama POD.

Este pequeño manual o artículo, te da un vistazo muy general del módulo. Es necesario que leamos esto para comprender como usar el módulo y ver si es lo que necesitamos.

Como verás es exactamente lo que necesitamos, un módulo que nos da todas las opciones en perl para crear un cliente en FTP. Hice un tutorial acerca de como usar este módulo, que puedes encontrar aquí.

Ahora regresemos a nuestra lista de necesidades y vemos que todavía nos falta la necesidad número dos, así que entramos de nuevo al CPAN y ponemos "Mail" y repetimos los pasos otra vez.

También de esto hice un tutorial que pueden ver aquí.

Instalando el módulo

Ya que decidimos que módulos usar, ahora es necesario descargarlos y hacer una "instalación". En realidad no es una instalación, sino es cuestión de poner los archivos en los directorios correcto.

En este artículo no vamos a hablar de la instalación de módulos, pero pueden encontrar una par de tutoriales que hice acerca de esto en las siguientes ligas:

http://perlenespanol.com/archives-tut/000061.html
http://perlenespanol.com/archives-tut/000054.html

Módulos vs. Código Mío

Hay mucha gente a la que no les gusta usar módulos y prefieren usar código suyo creado desde cero (dentro de ellos esta mi amigo Monoswim..jeje), pero ¿cuál es la mejor opción?

Si lo vemos desde un claro punto de aprendizaje, siempre te va a servir la práctica de hacer todo sólo y crear todo desde nada, pero desde un punto de eficiencia no es inteligente romperte la cabeza con algo que ya fue creado y que puedes tener a la mano muy fácilmente.

Cosas a considerar con los módulos

Aunque me gusta mucho usar módulos, no todo es de color de rosa con los módulos. Pues así como hay buenos o malos programas, también hay buenos o malos módulos.

Les recomiendo que siempre usen módulos que encuentren en CPAN, porque cuando un módulo se publica ahí es porque paso por un tipo de consejo editorial.

Todos los módulos vienen con una lista de "bugs" que fueron arreglados, y con el mail del autor para contactarlo en caso de que encuentren un error, revisen esto para checar que tipo de fallas podrían encontrar en el módulo.

Básicamente los módulos son bastantes seguros, pues puedes ver su código y hasta editarlos, y son muy mínimos los que podrían generarles mayores problemas.

Otra cosa que deben de tomar a consideración es que si piensan hacer un desarrollo de perl que van a usar varias personas, es necesario que tengan en mente que quizá su perl no venga con el módulo que necesiten. Esto se puede solucionar y lo pueden ver en uno de los tutoriales que hice.

También recuerden que muchos módulos ya vienen por default con perl, chequen su perl y vean si ya viene con el módulo que buscan.

Un código sencillo con el que pueden checarlo rápidamente es el que sige:

#!/usr/bin/perl -w

use strict;
use File::Find;

for(@INC){
find(\&modules,$_);
}

sub modules{
if(-d && /^a-z/){
$File::Find::prune = 1;
return
}

return unless /\.pm$/;

my $fullPath = "$File::Find::dir/$_";
$fullPath =~ s!\.pm$!!;
$fullPath =~ s#/(\w+)$#::$1#;
print "$fullPath \n";

}

¿Quiéres más tutoriales como este? Escribir tutoriales toma una gran cantidad de tiempo y esfuerzo. Si este tutorial te ayudó a aprender o a solucionar algo, por favor considera dejar alguna donación en apoyo a Perl en Español.

Cliquea en el botón de abajo para dejar tu donación por medio de PayPal.

Comparte:
Otros Artículos:
En Nuestros Foros:

    Software error:

    List::Util object version 1.21 does not match bootstrap parameter 1.35 at /usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi/XSLoader.pm line 94.
    Compilation failed in require at /usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi/Scalar/Util.pm line 13.
    Compilation failed in require at /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/DateTime/Helpers.pm line 9.
    BEGIN failed--compilation aborted at /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/DateTime/Helpers.pm line 9.
    Compilation failed in require at /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/DateTime/Duration.pm line 11.
    BEGIN failed--compilation aborted at /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/DateTime/Duration.pm line 11.
    Compilation failed in require at /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/DateTime.pm line 43.
    BEGIN failed--compilation aborted at /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/DateTime.pm line 43.
    Compilation failed in require at /usr/lib/perl5/site_perl/5.8.8/DateTime/Format/Mail.pm line 7.
    BEGIN failed--compilation aborted at /usr/lib/perl5/site_perl/5.8.8/DateTime/Format/Mail.pm line 7.
    Compilation failed in require at /usr/lib/perl5/site_perl/5.8.8/XML/RSS/Private/Output/Base.pm line 9.
    BEGIN failed--compilation aborted at /usr/lib/perl5/site_perl/5.8.8/XML/RSS/Private/Output/Base.pm line 9.
    Compilation failed in require at /usr/lib/perl5/site_perl/5.8.8/XML/RSS.pm line 9.
    BEGIN failed--compilation aborted at /usr/lib/perl5/site_perl/5.8.8/XML/RSS.pm line 9.
    Compilation failed in require at forum_news.pl line 7.
    BEGIN failed--compilation aborted at forum_news.pl line 7.
    

    For help, please send mail to the webmaster (webmaster@perlenespanol.com), giving this error message and the time and date of the error.

  • Entra a los foros »
Socializa:
Síguenos por Twitter

Suscríbete GRATUITAMENTE al Boletín de Perl en Español

Perl en Español es mantenido con Movable Type
Todo el contenido de Perl en Español está bajo una licencia CC:
Creative Commons License