[Cascavel-pm] Como passar arrays para funções... [Was: Duvida $dbh->prepare]

Gabriel Vieira gabriel.vieira em gmail.com
Sexta Janeiro 26 17:39:16 PST 2007


@{$argumento->{datas} } :)

On 1/26/07, Solli Honorio <shonorio em gmail.com> wrote:
>
>
> > > 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>
>
> _______________________________________________
> Cascavel-pm mailing list
> Cascavel-pm em pm.org
> http://mail.pm.org/mailman/listinfo/cascavel-pm
>
>


-- 
Gabriel Vieira
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: http://mail.pm.org/pipermail/cascavel-pm/attachments/20070126/2fc19406/attachment.html 


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