[SP-pm] Passando um array por parâmetro para uma subrotina

Adriano Ferreira aferreira at shopzilla.com
Thu Aug 14 11:46:10 PDT 2008


2008/8/14 Luis Motta Campos <luismottacampos at 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.

>> 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 at pm.org
> http://mail.pm.org/mailman/listinfo/saopaulo-pm
>


More information about the SaoPaulo-pm mailing list