[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