[SP-pm] Passando um array por parâmetro para uma subrotina
Fernando Oliveira
fernandocorrea at gmail.com
Thu Aug 14 12:16:57 PDT 2008
2008/8/14 Adriano Ferreira <aferreira em shopzilla.com>
> 2008/8/14 Luis Motta Campos <luismottacampos em yahoo.co.uk>:
> > caio ariede wrote:
> >>
> >> Olá.
> >>
> >> Estava pesquisando, em como passar um array por parâmetro para uma
> >> subrotina, cheguei ao código abaixo, que por sinal não sei se esta
> >> totalmente correto:
> >>
> >> sub calculate
> >> {
> >> my $linha_a = shift;
> >> my $matriz_a = shift;
> >> my $matriz_b = shift;
> >>
> >> @matriz_a = @{$matriz_a};
> >> @matriz_b = @{$matriz_b};
> >> }
>
> Ou ainda melhor, usando @{ +shift }
>
> sub calculate {
> my $linha_a = shift;
> my @matriz_a = @{ +shift };
> my @matriz_b = @{ +shift };
> }
>
> que vai livrá-lo de warnings como estes
>
> Ambiguous use of @{shift} resolved to @shift at -e line ...
> Global symbol "@shift" requires explicit package name at -e line ...
>
> que lhe avisam que "@{shift}" será o mesmo que @shift.
Eu acho mais legivel assim:
@{ shift() }
>
>
> >> Gostaria de saber se tem alguma forma alternativa pra fazer o @matriz_a
> =
> >> @{$matriz_a};
> >
> > Você sempre pode fazer tudo de uma vez só:
> >
> > sub calculate {
> > my $linha_a = shift;
> > my @matriz_a = @{ shift };
> > my @matriz_b = @{ shift };
> > }
> >
> > Putamplexos!
> > --
> > Luis Motta Campos is a software engineer,
> > Perl Programmer, foodie and photographer.
> > _______________________________________________
> > SaoPaulo-pm mailing list
> > SaoPaulo-pm em pm.org
> > http://mail.pm.org/mailman/listinfo/saopaulo-pm
> >
> _______________________________________________
> SaoPaulo-pm mailing list
> SaoPaulo-pm em pm.org
> http://mail.pm.org/mailman/listinfo/saopaulo-pm
>
--
Just another Perl Hacker,
Fernando (SmokeMachine)
http://perl-e.org
-------------- Pr?xima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://mail.pm.org/pipermail/saopaulo-pm/attachments/20080814/818eaf2f/attachment.html>
More information about the SaoPaulo-pm
mailing list