[Cascavel-pm] Como passar arrays para funções... [Was: Duvida $dbh->prepare]
Solli Honorio
shonorio em gmail.com
Sexta Janeiro 26 16:51:36 PST 2007
>
>
> > So + uma duvida..
>
> /me lança um olhar de reprovação sobre todos os membros desta
> lista de discussão que não se preocuparam em mudar o tópico das
> mensagens, acompanhando a mudança de assunto e ao mesmo tempo
> permitindo que a lista continue se organizando por threads e assuntos.
>
> (Relaxa, Patty, que desta vez quem pisou no tomate foram as
> "raposas" da lista... eheheheh)
>
> > em minha subrotina eu tento passar assim:
> > my ($ids, em datas,$variavels)=@_;
> > |______________________
> >
> > |
> > Minha duvida eh.. eu posso passar um ARRAY??
Patty, subrotinas sempre recebem através do array @_, sendo assim se vc
colocar o primeiro ou o segundo elemento de passagem de parametros como
array, todos o resto será confundido dentro o primeiro, ou segundo array.
Confuso ?
Vc está dizendo algo assim : me passe um elemento, depois me passe uma lista
de elementos de qualquer tamanho e por último me passe um elemento... mas
como assim, se o compilador passou todos os elementos no segundo ítem. Mas
claro ? Espero :)
Patty, em Perl a gente pode fazer praticamente qualquer coisa.
> O problema é saber se interessa.
>
> Isso que você quer fazer é possível (desafio: alguém sabe COMO
> fazer? FGlock: você, não vale...), mas pode ficar chato de entender
> para outras pessoas.
>
> Existem duas possibilidades para resolver este problema:
Ou três, que tal utilizar hash para a passagem de parametros ? Tipo assim :
<codigo>
my %hash = ( id => $ids,
datas => \@datas,
variaveis => $variaveis );
subrotina (\%hash);
sub subrotina {
my $argumento = shift;
die 'Invalido argumento, esperado uma referencia de hash' if
ref $argumento ne 'HASH';
print "$argumento->{id}\n";
foreach ( $argumento->{datas} ) {
print "$_\n";
}
print "$argumento->{variaveis}\n";
}
</codigo>
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: http://mail.pm.org/pipermail/cascavel-pm/attachments/20070126/98c3573c/attachment.html
Mais detalhes sobre a lista de discussão Cascavel-pm