Test:Acoso laboral Test del Zodíaco
Test:Agotamiento Burnout Test de Autoconcepto
Test:Sindr.Tensional Test Nutricional
Debes separarte de tu novio? Test:Lesbianismo
Test:Cómo me ven? Test:Depresión
Test:Nutrivitae Le Gustas o no?
Tu Conducta en encuentros Por que no bajo de peso?
Test Adicción al Cybersexo Test:1ª CITA?
Índ.Masa Corporal Test de Calentamiento
Test:Ovario Poliq. Amigos con beneficios
Test de la cama? Test de Ronquido
Test de Paranoia Test de Enf.Social
Problemas en la cama? Dogging Test
Test:Ex-Seductora" Test de Cáncer Oral
Test:Obsesividad  
Tenga los Tests en su WEB Vea TODOS LOS TESTS
Enviar página a un amigo


Sos Columnista de Alfinal ?

JUEGOS

  F O R O S
Lista de Columnistas reconocidos

Búsqueda por Tema

PÁGINAS SUGERIDAS

México así es, pues
la horca del patibulo iraki
cursos en el instituto p. coni
ronquido
por fin, que es crm?
nuevo régimen de monotributo, rep._
famosos
cómo se construye una guerra
mercadeo corporativo
imagendelaantartida
ley de trasplantes 24193
el sida moviliza la solidaridad
oxycontin (oxicodone) analgesico e_
resíduos industriais e a questão a_
patrón de calidad de la carrera de_
Ley territorial tierra delfuego nº _
Educación: adaptaciÓn al ambito esc_
Mi historia clinica
acerca de la guerra contra irak
antartida
Historia del telefono
el amor
fluidodinamica computacional y sus_
nitrosaminas y alimentos, toxicida_
los nuevos ingenieros quimicos y d_
Adivina !!
Cociente intelectual
reflejo verde
17 de abril de 1951 el instituto an_
historia de la computacion
constitución de colombia
energia
convivencia judeio musulmana
champan
conversor de gramos a onzas
Sexo anal en usa y latinoamerica
desaparecidos
tu primer cita, algunos consejos
Alcohol y adolescencia
leyes y principios demostrados emp_
referencias sobre el vino en las r_
vacunas
Diarios del peru 
Diarios del peru 
aviones hipersonicos
codificacion olfatoria
los significantes, elementos const_
Auras del sur artesanias en cerÁmic_
Cavas de zonda
Via auditiva
Impacto do balancec scorecard na co_
cirugia de amigdalas
Antartida argentina
posible enfriamiento global
Universidade corporativa como avala_
enzimas (monografico)
amigdalas (palatinas)
La conexión entre la guerra del gol_
informe epidemiologico sobre patol_
adenoidectomia en pacientes con he_
embriones
presidentes de la rep. argentina
Malvinas las cuatro estaciones de m_
glosario de términos embriologicos_
Antártida argentina, poco para fest_
¿qué sabemos sobre bulimia y anorex_
autoliderazgo por daniel fernando_
derechos y deberes del trabajador _
traqueomalacia
cerca del chip de neuro-memoria - _
pesificacion de la economia argent_
entrevista a la doctora gabriela y_
el fenomeno del niño
volver a la educación primaria int_
apostol de paz
Cómo saber si tienes verdadera nece_
recomendaciones higieno dietéticas_
Asociación de antígenos bacterianos_
el inconsciente, ese poder oculto
jose maria borrero
Cociente intelectual
Gestao ambiental
alca
azúcarres
desarrollo de la capacidad creador_
proyecto epigenoma humano _
el fenomeno del niño
Liquen rojo plano wilson
la doble dimensión de lo simbólico_
Argentina,  informe político d_
A formacao do contabilista na persp_
El esperanto
Aumento de salarios o pobreza
El origen de hallowe’en
petróleo y producción
mercadeo corporativo
recortar calorias en la vejez
cuidado con la postdata, por gabri_
games
A contabilidade como avalanca na co_
Enviar página a un amigo

Vea TODOS losTests

   Sea COLUMNISTA de Alfinal.com

 PÁGINAS SUGERIDAS

test de cooper, hágalo ya mismo
Fiebre aftosa
adenoidectomia en pacientes con hemopat_
El jardin del rey
el cuerpo como actualización de la expe_
recuso con causa - alfredo bisordi-
Deseos para niÑos - que sean niÑos los n_
el pensamiento de noam chomsky _
polucion luminica
Educacao ambiental
sociedad decapital e industria _
ativo imaterial e forca intelectual
alexitimia
Evolución
test de lesbianismo
2006, 126 aniversario del nacimiento de_
Dia mundial de la tierra
Alfinal.con: señales y ruido
el calibrador en labio leporino y fisur_
energia
nitrosaminas y alimentos, toxicidad
incremento en la tasa de cancer
Sistema extrapiramidal -consideraciones _
hacia un destino incierto
el martirio de larrabure
diferencias neurales entre el hombre y _
Nutrivitae
nuevo orden mundial, parte vi
zafando, el kirchnerismo en su laberint_
V-ras, v-raf y v-src promueven la sobrev_
Benjamin franklin
bin laden terrorismo
uso de hongos entomopatÓgenos en el con_
Malvinas argentinas
leibnitz
la mujer y la psicología
Azufre
cuestión de límites
conocimiento sobre salud buco dental en_
trastornos nutricionales derivados de l_
Carta de agradecimiento del sr. bertotto_
anticonception de emergencia y mujeres _
Commendas, el comienzo de las sociedades_
hipotálamo, anatomia
El sars es una pieza del complot que com_
El jardin del rey
hospitales en argentina
el cromo en la dieta
apostol de paz
Paleogeografia
Capital intelectual
vitamina d y fallo cardiaco
la vaca loca, priones
parejas y amigos
pan de pita
México así es, pues
dubonnet
Ley territorial tierra delfuego nº 244 r_
la metafísica de giordano bruno
los significantes, elementos constituti_
cual es el malestar del gremio docente _
riña de gallos
fisiología de la accion de la insulina _
Cómo saber si tienes verdadera necesidad_
contabilidade ambiental por maria elisa_
mercadeo corporativo
discurso y prÁctica del neoliberalismo _
El petróleo
energÍas alternativas y sustituciÓn del_
a eficiencia do custeio baseado em ativ_
embarazos y malformaciones congenitas
Discurso de hugo chavez en argentina, la_
la doctrina social de la iglesia
que harias si supieras que vas a morir _
la importancia del desayuno en la dieta_
Aborto
games
La vida despuÉs de la obra ii
E-learning na contabilidade
Metabolismo lipídico del embrión en orga_
foca weddel
energía solar en spray
Consecuencias ambientales
Eutanasia
como saber si su hijo se droga, test de_
Mecanismos de daño tisular con participa_
aceitunas verdes escabechadas
elecciones 2003 en r. argentina
Auras del recuerdo
ativo imaterial e forca intelectual
autoliderazgo - las relaciones _
Azufre
orientacion dietoterapica en bulimia y _
contratos
petróleo y producción
Aborto
aprendizaje
Auras del sur artesanias en cerÁmica en _
sistemas scada
Mecanismos de regulación génica de estró_
ley de genéricos republica argentina
ganglios basales
síntesis de coenzima q en saccharomyces_
¿qué sabemos sobre bulimia y anorexia?
Dedicación exclusiva y hospital público _
O fenomeno patrimonial e fenomeno ambien_
parafilias
el siglo xxi comenzó en 1989
Nutrilife
roberto lavagna, entrevistas
Los neoliberales se preocupan por nuestr_
ley 48 de equiparacion de oportunidades_
Auras del recuerdo
Atentado en oklahoma
Antartida argentina accidente del rompeh_
escala de glasgow
arabia y el terrorismo. perjuicios econ_
Auras del recuerdo
procesos de memoria
Pasantia por ciudad holguin cuba salud i_
autoliderazgo - lideres de nosotros mis_
A contabilidade como instrumento de gest_
O contabilista como mediador no processo_
Eutanasia
ley 23.551 sindicatos
Programa nº 01= como saber si está en pe_
CÓmo influyen los ritmos circadianos en _
Tierra del fuego puede tener su propio t_
epidemias, el hiv sida
o conhecimento
autoliderazgo - lideres de nosotros mis_


PERL

El uso de los módulos

 

by alfi

 

Para que escribir una rutina cada vez que la necesitamos, si podemos hacerlo una sola vez y luego invocarla (llamarla) ?

Para eso están los módulos, que en PERL se los reconoce por su extensión, como por ejemplo cgi.pm. La extensión pm está indicándonos que se trata de un módulo.

 

Por ejemplo, si estuviéramos haciendo un script, y en una parte del mismo necesitamos que a cada variable se le saquen los espacios vacíos (caracter 32 en ASCII) situados delante y detrás de la palabra, pero no entre medio de las palabras.

 

Para más claridad, si tuvieramos la variable:

 

  $idea="   tengo que sacar los espacios    ";

 

y desearíamos que quedase:

 

  $idea="tengo que sacar los espacios";

 

Para ello, podemos crear nuestro propio módulo, por ejemplo modulo.pm y allí vamos introduciéndole funciones que nos sean útiles. Acá va escrito el módulo completo. copialo y dale el nombre modulo.pm y subilo al directorio cgi-bin del servidor y cambiale los permisos.

 

# modulo.pm
## éste módulo hace trim, o sea quita espacios antes y despues del texto ## pero no entre medio

sub trim_izq{  ## apertura de la subrutina
 $largo=length($idea); ## mide el largo de la var $idea

 $largo++; ## le incrementa un número al largo
    for ($g = 0; $g < $largo; $g++){  ## abre un bucle usando $largo
    $largo1=length($idea);  ## redefine $largo1 dinamicamente en bucle

     $esp=substr($idea,0,1); ## lee primer caracter de la variable

       if ($esp eq " "){ ## detecta si es un espacio vacio
         $idea = substr($idea,1,$largo1-1); ## si lo es, lo recorta
      }
   }
 return $idea;
}   ## cierre de la subrutina

sub trim_dcha{ 
  $largo=length($idea); $largo++;
    for ($g = 0; $g < $largo; $g++){
      $largo1=length($idea);
      $esp=substr($idea,$largo1,1);
         if ($esp eq " "){
           $idea = substr($idea,0,$largo1-1);
        }
    }
    return $idea;
}
1;

 

OTRA MANERA MAS SIMPLE DE HACER LO MISMO
(usando expresiones regulares)
ES LA SIGUIENTE

 

# modulo.pm
## éste módulo hace trim, o sea quita espacios antes y despues del texto ## pero no entre medio

sub trim_izq{  ## apertura de la subrutina
  $idea=~s/^\s*//;  #quita espacios iniciales

  return $idea;
}   ## cierre de la subrutina

sub trim_dcha{ 
  $idea=~s/\s*$//; #quita espacios finales    

  return $idea;
}

sub trim{ 
  $idea=
~ s/\s+//g;  #quita espacios en el medio del texto
  return $idea;
}

1;

 

Veamos que el módulo tiene dos funciones:

     sub trim_izq  y sub trim_dcha

 

Esas son las funciones que deberemos llamar para que una variable pierda los espacios delante y detrás.

También fijate que modulo.pm termina en 1; no es un error, en cambio, te dará error si no lo colocas

 

Ahora, analicemos una de las subrutinas, la trim_izq  que está comentada:

sub trim_izq{  ## apertura de la subrutina

  esto es fácil, definimos la subrutina con ese nombre

 

 $largo=length($idea); ## mide el largo de la var $idea

acá necesitamos saber el largo de la var $idea QUE ES LA QUE NOS MANDA EL VALOR QUE TENEMOS QUE MODIFICAR

 

 $largo++; ## le incrementa un número al largo

le sumamos un punto al largo obtenido (lo entenderas enseguida)


    for ($g = 0; $g < $largo; $g++){  ## abre un bucle usando $largo

abro un bucle que analizará la variable $idea desde su primer caracter=0 hasta el último $largo. Como pusimos < $largo, era necesario sumarle un punto a $largo para que contemple toda la cadena

 

    $largo1=length($idea);  ## redefine $largo1 dinamicamente en bucle

lo mismo de recién, pero en forma dinámica, ya que dentro del bucle, la variable $idea se va a ir reduciendo de largo, por ello es necesario redefinirla.

 

     $esp=substr($idea,0,1); ## lee primer caracter de la variable

en la var $esp guardamos el primer caracter mediante el comando substr. Los parámetros de substr son $idea, que es la variable a analizar, 0 que es el primer caracter a analizar de dicha variable y 1 que es la cantidad de caracteres que vamos a analizar por vez que se ejecute substr.

 

       if ($esp eq " "){ ## detecta si es un espacio vacio

si $esp equivale (eq) a un caracter de espacio " "


         $idea = substr($idea,1,$largo1-1); ## si lo es, lo recorta

lo recortamos con substr, fíjate que lo que antes era 0 ahora es 1, porque ya sabemos que en el primer caracter (0) hay un espacio y no queremos tenerlo, entonces redefinimos la var $idea a partir del segundo caracter, por eso en lugar de cero ponemos uno. También modificamos el parámetro cantidad de caracteres de susbtr, ya que acá queremos todo el resto de la variable. Pero como le hemos quitado un caracter al principio, el largo será igual al largo menos uno.

      } ## cierre del if
   } 
## cierre del for

El bucle for está a los fines de analizar todas las veces que sea necesario el primer caracter, ya que si tiene más de un espacio será necesario verificar. Por ejemplo si la variable $idea es igual a "   tengo que sacar los espacios   ", antes de la palabra tengo hay tres espacios, por lo tanto el bucle se ejecutará tantas veces como caracteres tenga la variable, pero solo reconocerá a la izquierda de la variable tres espacios vacíos.

 
 return $idea;

la subrutina devuelve la var $idea sin los espacios delante o sea a su izquierda


}   ## cierre de la subrutina

 

 

AHORA A NO OLVIDARSE de que estábamos haciendo un script que tiene que usar al modulo.pm, ya que hasta ahora solo hemos visto el módulo, ahora veamos el script.

 

#!/usr/bin/perl
use modulo;  ## esto habilita el uso de modulo.pm

print "Content-type:text/html\n\n";
 $idea="   tengo que sacar los espacios    ";

## ahora llamo a la subrutina para quitarle los espacios a la izquierda

&trim_izq;  ##esto invoca la subrutina de modulo.pm

 

 ## ahora imprime el resultado en pantalla, sin los espacios a la izquierda

print "$idea<br>";

 

 ## ahora le quito los espacios al a derecha

&trim_dcha;  ##esto invoca la subrutina de modulo.pm

 

 ## ahora imprime el resultado en pantalla, sin los espacios a la derecha

print "$idea<br>";

 


 

Ahora los dos scripts

 

# modulo.pm
## éste módulo hace trim, o sea quita espacios antes y despues del texto ## pero no entre medio

sub trim_izq{  ## apertura de la subrutina
 $largo=length($idea); ## mide el largo de la var $idea

 $largo++; ## le incrementa un número al largo
    for ($g = 0; $g < $largo; $g++){  ## abre un bucle usando $largo
    $largo1=length($idea);  ## redefine $largo1 dinamicamente en bucle

     $esp=substr($idea,0,1); ## lee primer caracter de la variable

       if ($esp eq " "){ ## detecta si es un espacio vacio
         $idea = substr($idea,1,$largo1-1); ## si lo es, lo recorta
      }
   }
 return $idea;
}   ## cierre de la subrutina

sub trim_dcha{ 
  $largo=length($idea); $largo++;
    for ($g = 0; $g < $largo; $g++){
      $largo1=length($idea);
      $esp=substr($idea,$largo1,1);
         if ($esp eq " "){
           $idea = substr($idea,0,$largo1-1);
        }
    }
    return $idea;
}
1;

 

 

El script que invoca al modulo es

 

#!/usr/bin/perl
use modulo;  ## esto habilita el uso de modulo.pm

print "Content-type:text/html\n\n";
 $idea="   tengo que sacar los espacios    ";

## ahora llamo a la subrutina para quitarle los espacios a la izquierda

&trim_izq;  ##esto invoca la subrutina de modulo.pm

 

 ## ahora imprime el resultado en pantalla, sin los espacios a la izquierda

print "$idea<br>";

 

 ## ahora le quito los espacios al a derecha

&trim_dcha;  ##esto invoca la subrutina de modulo.pm

 

 ## ahora imprime el resultado en pantalla, sin los espacios a la derecha

print "$idea<br>";

 

 

 

Alfinal.com no se responsabiliza por el contenido de los artículos publicados. Si el contenido de algun artículo ofende a terceros, comuniquelo a alfinal.com.

visitas desde enero de 2000