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

Eden Cardim edencardim at gmail.com
Fri Aug 15 07:53:02 PDT 2008


On Fri, Aug 15, 2008 at 5:01 AM, Luis Motta Campos
<luismottacampos em yahoo.co.uk> wrote:
> Eden Cardim wrote:
>>
>> On Thu, Aug 14, 2008 at 6:15 PM, Lucas Mateus
>> <lucasmateus.oliveira em gmail.com> wrote:
>>>
>>> Bom isso eh relativo, por exemplo, se a funcao for chamada com quantidade
>>> de
>>> parametros inferior a 3, nao havera um DIE no meio do programa dele, acho
>>> q
>>> assim eh mais consistente.
>>
>> use Moose;
>>
>> has linha_a => (isa => 'ArrayRef', is => 'ro', auto_deref => 1, required
>> => 1);
>> has matriz_a => (isa => 'ArrayRef', is => 'ro', auto_deref => 1, required
>> => 1);
>> has matriz_b => (isa => 'ArrayRef', is => 'ro', auto_deref => 1, required
>> => 1);
>>
>> sub calcular {
>>  my($self) = @_;
>>  ... for $self->matriz_a ...
>>  ... $self->matriz_b->[0] ...
>>  etc...
>> }
>
> Mas isso é grande e lento... e eu quero apenas escrever 10-12 linhas de
> perl. Não tem uma forma mais curta de usar Moose?

has $_ => (isa => 'ArrayRef', is => 'ro', auto_deref => 1, required =>
1) for qw/linha_a matriz_a matriz_b/;

Experimenta implementar tudo que essa linha faz, manualmente, e depois
nós comparamos qual o menor/mais rápido ;)

-- 
edenc.vox.com


More information about the SaoPaulo-pm mailing list