[bcn-pm] Usando e importando a la vez

Alex Muntada alexm a alexm.org
dll nov 23 10:43:52 PST 2009


+ Juan Julian Merelo Guervos <jmerelo a geneura.ugr.es>:

> ¿Hay alguna forma de hacer esto:
>
> use base 'Algorithm::MasterMind';
>
> use Algorithm::MasterMind qw(entropy);
>
> en una sola sentencia?

El http://perldoc.perl.org/base.html diu:

  The base class' import method is not called

Així que no crec que hi hagi cap mecanisme «net» per fer-ho.

Però si aprofites que tens herència pots delegar la cerca del
mètode de classe a Perl fent:

  __PACKAGE__->entropy(...);

O bé:

  $self->entropy(...);

Perl recorrerà tot el @ISA cercant una classe que implementi
el mètode entropy. Si entropy és una funció, la cosa no funciona,
cal que hi hagi herència pel mig, però entenc que no hauria de
donar-te gaires problemes fer que entropy sigui un mètode de
la classe enlloc d'una funció.

Salut i Perl!

-- 
Alex Muntada <alexm a alexm.org>
http://alexm.org/


Més informació sobre la llista de correu Barcelona-pm