[Cascavel-pm] Re: [perlbr] undef em todas as variáveis

fglock em pucrs.br fglock em pucrs.br
Quinta Janeiro 8 19:34:46 CST 2004


Gabriel escreveu:
> O uso do my não é viável, já que utilizo um
> arquivo de complemento com as funções 
> principais e o chamo através do require, 
> e caso eu esteja usando o my, as variáveis do
> arquivo em questão não são passadas pro script
> que está sendo executado.

Isso acontece porque você está utilizando
variáveis globais, o que pode ser evitado 
através do uso de parâmetros, por exemplo:

sub rotina_distante {
  my ( $valor1, @lista2 ) = @_;
  print "valor 1 $valor1 \n";
  print "lista 2 @lista2 \n";
}

# programa_principal
{
  my $valor1 = "teste";
  my @lista2 = qw( a b c d );
  rotina_distante( $valor1, @lista2 );
}

Existem algumas técnicas para consolidar
parâmetros dentro de estruturas mais 
complexas (por exemplo, você poderia
utilizar objetos), mas espero o exemplo 
acima já resolva alguns dos seus problemas.

Veja também que, colocando o "programa principal"
dentro de um bloco " { ... } ", as variáveis
"my" só existem ali dentro.

- Flavio S. Glock

Obs: não é necessário enviar para as duas
listas, Perlbr e Cascavel-pm - muitas pessoas
pertencem às duas listas e recebem seu mail
duplicado!





Mais detalhes sobre a lista de discussão Cascavel-pm