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

Lucas Mateus lucasmateus.oliveira at gmail.com
Thu Aug 14 12:24:25 PDT 2008


sub calculate {
  my $linha_a = shift;
  my @matriz_a = @{ +shift || [] };
  my @matriz_b = @{ +shift || [] };
}







Em Thu, 14 Aug 2008 15:46:10 -0300, Adriano Ferreira  
<aferreira em shopzilla.com> escreveu:

> 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.
>
>>> 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



-- 
Usando o revolucionário cliente de correio do Opera:  
http://www.opera.com/mail/


More information about the SaoPaulo-pm mailing list