[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