[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