Ver Mensaje Individual
  #2 (permalink)  
Antiguo 24/01/2004, 12:51
kidd
 
Fecha de Ingreso: mayo-2003
Mensajes: 328
Antigüedad: 21 años, 9 meses
Puntos: 0
Hola monoswim:

Debido a que estas usando el pragma strict no puede hacer variables que sean globales, por lo que siempre tienes que estar enviando las variables.

Lo que te recomiendo es que en este caso uses referencias, es decir para que siempre se use la misma variable, para que me entiendas te voy a poner un ejemplo usando más o menos lo que nos mostraste:

Código:
libreria.pl
sub uno{
 my $caca = shift;
   
  #Usamos doble $ para de-referenciar 
   $$caca += 1; #Sumamos uno a la variable
 }
1;


script.pl
use strict;
require libreria.pl;

my $caca = 1;

uno(\$caca); #Llamamos la funcion para sumar 1

print $caca;  #Resultado debe de ser 2
exit;

Recuerda que cuando mandamos la referencia lo que estamos envíando es el número de byte en memoria donde se encuentra nuestra variable, por ende lo que editamos es en memoria, por lo que podemos editar la misma variable sin ningun problema.

Espero que sea de ayuda en tu problema el ejemplo que te mostre.

SALUDOS
__________________
Uriel Lizama, Perl Developer

Aprende Perl en Perl en Español.