[Cascavel-pm] Como passar arrays para funções... [Was: Duvida $dbh->prepare]
André Garcia Carneiro
andre.garcia.carneir em terra.com.br
Sexta Janeiro 26 06:53:21 PST 2007
Desculpe a intromissão, mas não entendi a declaração da sua sub, principalmente os parênteses, poderia
esclarecer, por gentileza?
Cheers!
sub g ($\@$) {
my ($a, $bb, $c) = @_;
my @b = @$bb;
print "$a | @b | $c\n";
}
---------- Cabeçalho original -----------
De: cascavel-pm-bounces+andre.garcia.carneir=terra.com.br em pm.org
Para: "Cascavel Perl Mongers" cascavel-pm em pm.org
Cópia:
Data: Fri, 26 Jan 2007 11:41:26 -0200
Assunto: Re: [Cascavel-pm] Como passar arrays para funções... [Was: Duvida $dbh->prepare]
> Olá,
>
> On 1/26/07, Luis Motta Campos <luismottacampos em yahoo.co.uk> wrote:
> > On Jan 26, 2007, at 12:17 PM, Patty Silva wrote:
> > > em minha subrotina eu tento passar assim:
> > > my ($ids, em datas,$variavels)=@_;
>
> > 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.
>
> Fiquei na dúvida de quais eram exatamentes os requisitos do problema (manter
> o ($a, @b, $c) = @_, ou permitir que possam ser passados sem ter que criar
> a referência). Acabei fazendo o seguinte:
>
> use strict;
> use warnings;
>
> sub f {
> my ($a, @b, $c) = @_;
> print "$a | @b | ". ($c ? $c : "NADA") . "\n";
> }
>
> sub g ($\@$) {
> my ($a, $bb, $c) = @_;
> my @b = @$bb;
> print "$a | @b | $c\n";
> }
>
> my @arr = (1,2,3);
>
> f('Perl', @arr, 'Cascavel');
> g('Perl', @arr, 'Cascavel');
>
> E a saída é:
> Perl | 1 2 3 Cascavel | NADA
> Perl | 1 2 3 | Cascavel
>
>
> Pelo menos no quesito chamar passando um array no meio a coisa funciona, apesar
> de poder ficar meio confuso, a pessoa achar que pode colocar uma lista
> no lugar da @arr, porém isto não funciona.
>
>
> Cheers,
> Caio Marcelo
> _______________________________________________
> Cascavel-pm mailing list
> Cascavel-pm em pm.org
> http://mail.pm.org/mailman/listinfo/cascavel-pm
>
> E-mail classificado pelo Identificador de Spam Inteligente Terra.
> Para alterar a categoria classificada, visite
>
http://mail.terra.com.br/protected_email/imail/imail.cgi?+_u=andre.garcia.carneir&_l=1,1169818920.528857.1469.morondava.hst.terra.com.br,4794,Des15,Des15
>
> Esta mensagem foi verificada pelo E-mail Protegido Terra.
> Scan engine: McAfee VirusScan / Atualizado em 25/01/2007 / Versão: 5.1.00/4949
> Proteja o seu e-mail Terra: http://mail.terra.com.br/
>
>
--
André Garcia Carneiro
Developer(Perl/PHP)
Member of "São Paulo Perl Mongers" - http://sao-paulo.pm.org
Mais detalhes sobre a lista de discussão Cascavel-pm