[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