viernes, 12 de abril de 2013

Perl: Creación de un módulo para agrupar funciones


En este artículo se publican dos archivos:
  • El primero es para el llamado de las subrutinas.
  • El segundo es para la definición de rutinas.

En Perl podemos crear módulos para agrupar las funciones al estilo programación procedimental ó también hacer módulos que respondan al modelo de objetos.

A continuación un ejemplo al estilo procedimental:

------------------------------ CORTAR AQUI ------------------------------
#!/usr/bin/perl
package moduloPrueba;
use strict;
use Exporter;
use warnings;

#Archivo moduloPrueba.pm
###########################################
#ejemplo adaptado de
# Bruno Contreras-Moreira
# http://www.eead.csic.es/compbio
# TEORIA: Modulos, clases y objetos
###########################################

our @ISA    = qw(Exporter);

########### LO QUE EXPORTA EL MODULO ###################
#definicion en forma de lista de las cabeceras de 
#funciones y variables globales que podran ser
#utilizadas desde los programas

our @EXPORT = qw( subrutina2 $variableGlobal1 $VERSION); 


########### VARIABLES GLOBALES ###################
# variables globales del modulo se coloca en forma 
# de lista en @EXPORT al inicio del programa
our $variableGlobal1;
our $VERSION=1.0;

#################################################
#definicion de una rutina interna. Esta no se encuentra en la lista
#de elementos a exportar @EXPORT
sub subrutina1_interna
{
    my ($parametros) = @_;
    
#    print "Estoy en subrutina1-> $parametros"
    #cargo un valor y lo devuelvo para prueba
    my $resultados = 1;    
    return ($resultados)  
}

#################################################
sub subrutina2
{    
    #uso la rutina interna pasandole un parametro
    my $datos = subrutina1_interna(2);
    
    print "Estoy en subrrutina2\n";
    #asignacion de datos a una variable global al modulo
    $variableGlobal1 = $datos;
}

1;
------------------------------ CORTAR AQUI ------------------------------

El archivo para utilización del módulo.

------------------------------ CORTAR AQUI ------------------------------
#!/usr/bin/perl
# Archivo pruebaModulo.pl
###########################################
#ejemplo adaptado de
# Bruno Contreras-Moreira
# http://www.eead.csic.es/compbio
# TEORIA: Modulos, clases y objetos
#
#Una muestra de agrupacion de funciones en un modulo
#Este ejemplo no utiliza el manejo de modulos en forma de clases
#
###########################################

use 5.006;
use strict;
use warnings;

#llamamos al modulo que creamos 
use moduloPrueba;

subrutina2();
print "$variableGlobal1 \n";
print "$VERSION \n";

------------------------------ CORTAR AQUI ------------------------------


Enlace fuente: --> TEORÍA: Módulos, clases y objetos

No hay comentarios:

Publicar un comentario