[Marseille-pm] YAPC::Europe

arnaud.assad at free.fr arnaud.assad at free.fr
Sat Apr 19 10:10:52 CDT 2003


On Wed, Apr 16, 2003 at 06:02:50PM +0200, Robert silve wrote:
> Salut m'sieur Arnaud :))

Salut TexMec !
j'attends tjrs un petit texte pour mettre sur marseille.pm.org ;-)

> 
> On Wed, Apr 16, 2003 at 03:06:53PM +0200, arnaud.assad at free.fr wrote:
> > Juste un petit mail, pour :
> > 1) Vous signaler que la préinscription pour YAPC::Europe::Paris est
> > effective (http://yapc.mongueurs.net/yapc/join/)
> > Quels sont ceux d'entre vous qui comptent y aller ?
> > (Moi, j'y serai)
> Moi j'ai toujours pas aborde le point des vacances (delicat 
> s'il en est) avec le boss. Mais j'aimerais bien y passer une 
> journee. Je vais essayer d'organiser ca la semaine prochaine.

Tiens moi au courant...

> > Pas de questions ? de trouvailles à faire partager ? Pas de projet ?
> Rien d'aussi grandiose, par contre apres la lecture de l'apocalypse 6
> j'avoue que j'etait perplexe mais apres le synopsis 6 alors la
> je suis carrement enthousiate !! Je trouve que les choses deviennent
> carrement amusante.

ahah !
Perl rules ! And Perl 6 rules even more !!!


> Ah si j'ai une question puisqu'on en parle : j'ai essaye de comprendre 
> le module Class::Data:Inheritable (je doit le reprendre en parti pour 
> une appli tournant sur une machine ou il n'est pas installe et
> ou je n'est pas la main). Je dois avoue que je suis toujours incapable 
> de comprendre une malheureuse ligne :
>        return $wantclass->mk_classdata($attribute)->(@_)
> dans le function mk_classdata 

huh !?!
C'est du Damian...

A première vue :
On returne une référence vers une fonction appellée avec @_ comme argument...
Ca ressemble à une closure...
L'idée est je crois de mettre dans $accessor la closure (réfrence vers du
code avec un "environement lexical "sauvegardé"") pour pouvoir ensuite
(comme il est indiqué dans la doc) appeler la fonction par 2 noms :

*{$declaredclass.'::'.$attribute} = $accessor;
*{$declaredclass.'::'."_${attribute}_accessor"}     = $accessor;

Si attribute = Suitcase

alors tu peux utiliser Suitcase ou _Suitcase_accessor pour appeler la même
fonction (si tu veux la redéfinir et conserver une version héritée...)

Ca aurait été une bonne question pour la mailinglist...
;-)

> en fait je ne voit pas ce que fait cette ligne et en particulier 
> comment marche cette notation "mk_classdata($attribute)->(@_)" qui
> me semble bizarre vu le reste du module.

Si tu regardes la dernière ligne de mk_classdata tu vois que ca retourne une
code ref

donc mk_classdata($attribute)->(@_) est un appel de fonction avec @_ comme
paramètre...

Arnaud.



More information about the Marseille-pm mailing list