From mirod at xmltwig.com Mon Dec 2 06:07:01 2002 From: mirod at xmltwig.com (Michel Rodriguez) Date: Mon Aug 2 21:38:16 2004 Subject: [Toulouse-pm] Le Calendrier Perl Message-ID: <1038830760.22892.64.camel@monster.xmltwig.com> Salut, Le Calendrier de Noel a commence: http://www.perladvent.org/2002/ A ce propos, une question, totalement OT: on se demandait l'autre jour avec ma femme si ca se faisait en France, le calendrier de Noel, ou on ouvre une fenetre, qui continet une sucrerie, chaque jour pendant 1 mois avant Noel. On fait pas ca chez moi mais on est que des mecreants, alors ca m'interesserait de savoir si ca se faisait chez vous? -- Michel Rodriguez From eric.gerbier at free.fr Mon Dec 2 08:00:01 2002 From: eric.gerbier at free.fr (eric gerbier) Date: Mon Aug 2 21:38:16 2004 Subject: [Toulouse-pm] chargement differe de module dynamique ? Message-ID: <3DEB57D2.6030801@free.fr> bonjour je ne sais pas si c'est un bon endroit pour poser ma question, mais ca concerne perl :) j'ai un petit script perl qui marche, mais que je voudrais ameliorer. il utilise un module perl RRDs, et je voudrais afficher un message si le module n'est pas present sur la machine. J'ai trouve la solution dans le "perl cookbook", mais j'ai un probleme sur l'import: mon script d'origine : ################################ #!/usr/bin/perl -w use strict; use RRDs; my $hash = RRDs::info "gauge.rrd"; foreach my $key (keys %$hash){ print "$key = $$hash{$key}\n"; } my $err = RRDs::error; print " err= $err" if $err; ############################################### mon script modifie : #!/usr/bin/perl -w use strict; eval "require RRDs"; die "module RRDs pas trouve : $@\n" if $@; RRDs->import(); my $hash = RRDs::info "gauge.rrd"; foreach my $key (keys %$hash){ print "$key = $$hash{$key}\n"; } my $err = RRDs::error; print " err= $err" if $err; ############################################## les erreurs qu'il me sort String found where operator expected at ./essai2.pl line 9, near "RRDs::info "ga uge.rrd"" (Do you need to predeclare RRDs::info?) syntax error at ./essai2.pl line 9, near "RRDs::info "gauge.rrd"" Bareword "RRDs::error" not allowed while "strict subs" in use at ./essai2.pl lin e 14. Execution of ./essai2.pl aborted due to compilation errors. ######################################## en regardant le contenu du package (cf ci-dessous), il n'y a pas de fonction import, ni d'heritage de Exporter, donc pas de fonction d'import : comment faire ? package RRDs; use strict; use vars qw(@ISA $VERSION); @ISA = qw(DynaLoader); require DynaLoader; $VERSION = 1.000391; bootstrap RRDs $VERSION; 1; ################################################## -- Eric Gerbier http://eric.gerbier.free.fr From rlehy at free.fr Mon Dec 2 08:23:01 2002 From: rlehy at free.fr (Ronan Le Hy) Date: Mon Aug 2 21:38:16 2004 Subject: [Toulouse-pm] chargement differe de module dynamique ? References: <3DEB57D2.6030801@free.fr> Message-ID: <3DEB6CA3.7040809@free.fr> eric gerbier a ?crit: > bonjour > > je ne sais pas si c'est un bon endroit pour poser ma question, mais ca > concerne perl :) > Ah, le d?calage horaire :). (pour ceux qui sont int?ress?s, cf fr.comp.lang.perl) Sinon, chez moi on a toujours eu des calendriers de l'avent, avec des fois des chocolats dedans. Et chaque dimanche, ma soeur allume une bougie. Sinon, Michel, tu t'y es pris comment pour attirer toutes ces foules ? toulouse.pm? T'as pay? des hommes-sandwichs? des 4x3 sur le p?riph? (sous-entendu: on est 4 aux r?unions de lyon.pm, et on va finir par bien se connaitre :) Voila voila. Ronan Blop! -- This incantation never fails! Thaddeus Barker of Hightown, Winsconsin omitted -w, and he was plagued with bugs for the rest of his life. Mary Purges of Crenellation, Idaho used strict, and the very next day she found a $100 bill on the sidewalk. Coincidence? I THINK NOT! Simon Cozens sur clpmod From mirod at xmltwig.com Mon Dec 2 09:20:00 2002 From: mirod at xmltwig.com (Michel Rodriguez) Date: Mon Aug 2 21:38:16 2004 Subject: [Toulouse-pm] chargement differe de module dynamique ? In-Reply-To: <3DEB6CA3.7040809@free.fr> References: <3DEB57D2.6030801@free.fr> <3DEB6CA3.7040809@free.fr> Message-ID: <1038842362.22892.82.camel@monster.xmltwig.com> On Mon, 2002-12-02 at 15:22, Ronan Le Hy wrote: > Sinon, chez moi on a toujours eu des calendriers de l'avent, avec des > fois des chocolats dedans. Et chaque dimanche, ma soeur allume une bougie. Donc il semblerait que c'est une tradition catholique (je m'avance peut-etre en pensant que vu ton nom tu est plutot de l'Ouest de la France ;--). Ce qui expliquerait que le Sud-Ouest mecreant, surtout dans sa frange emigree d'Espagne avec vers la fin de la guerre civile pour cause d'anarchisme aigu, ne fasse pas trop ca. > Sinon, Michel, tu t'y es pris comment pour attirer toutes ces foules ? > toulouse.pm? T'as pay? des hommes-sandwichs? des 4x3 sur le p?riph? > (sous-entendu: on est 4 aux r?unions de lyon.pm, et on va finir par bien > se connaitre :) Je te rassure, on est pas souvent plus de 4 aux reunions, sauf quand on se melange aux Linuxiens assoifes. Bon, avec tout ca on a pas vraiment repondu a la question... Je connais pas RDDs, j'y jetterais un oeil tout a l'heure, mais 2 truc me frappent: en general je fais import RDDs; pas RDDs->import, mais ca pas l'air d'etre le probleme, et puis surtout il faut peut etre mettre ton eval/import dans un bloc BEGIN, que ca soit execute avant de parser la suite du script, et donc que RRDs::info et RRDs::error soient declarees. -- Michel Rodriguez From Paul.Gaborit at enstimac.fr Mon Dec 2 09:39:01 2002 From: Paul.Gaborit at enstimac.fr (Paul Gaborit) Date: Mon Aug 2 21:38:16 2004 Subject: [Toulouse-pm] Attirer les foules (?) In-Reply-To: <3DEB6CA3.7040809@free.fr> References: <3DEB57D2.6030801@free.fr> <3DEB6CA3.7040809@free.fr> Message-ID: At 15:22 +0100 2/12/02, Ronan Le Hy wrote: >Sinon, Michel, tu t'y es pris comment pour attirer toutes ces foules >? toulouse.pm? T'as pay? des hommes-sandwichs? des 4x3 sur le >p?riph? (sous-entendu: on est 4 aux r?unions de lyon.pm, et on va >finir par bien se connaitre :) Si Lyon ?tait plus pr?s d'Albi, je viendrais bien vous saluer de temps en temps... Mais Toulouse est d?j? trop loin ;-) Tout ?a pour dire que ce n'est pas parce qu'on est dans l'alias qu'on vient souvent aux rencontres :-(. ? chaque fois, le coeur y est (je devrais peut-?tre y ajouter le foie car j'aime bien la bi?re) mais pas le bonhomme ! -- Paul Gaborit -- DR/GI -- Perl en fran?ais -- From mirod at xmltwig.com Tue Dec 3 09:14:00 2002 From: mirod at xmltwig.com (Michel Rodriguez) Date: Mon Aug 2 21:38:16 2004 Subject: [Toulouse-pm] mod_perl, warning "Attempt to free unreferenced scalar" Message-ID: <1038928384.22889.95.camel@monster.xmltwig.com> Salut, Je viens d'installer un handler mod_perl. C'est un truc tout simple qui filtre l'acces sur l'adresse IP de la requete. J'ai fait mes test sur ma machine de developement sous Linux, ca marchait bieng. Et forcement depuis que j'ai installe la chose sur le vrai serveur, qui lui est sous Solaris, je vois defiler des messages "Attempt to free unreferenced scalar" dans mon error_log. Grrrr Ce message c'est sense etre un warning, donc il devrait etre possible de le supprimer, sauf que j'y arrive pas! Quaequ'un a une idee? C'est en perl 5.6.1, apache_1.3.26, mod_perl-1.27, mod_ssl-2.8.9-1.3.26 si ca peut aider. Oh, et mon handler n'utilise pas WeakRef ou autre truc zarbi, donc ya pas de raison que j'ai ce message a priori. Et pis tout marche bieng a part que mon log se remplit un peu trop vite. Merci -- Michel Rodriguez From rcrochet1 at 9online.fr Tue Dec 3 15:38:00 2002 From: rcrochet1 at 9online.fr (Raphaël CROCHET) Date: Mon Aug 2 21:38:16 2004 Subject: [Toulouse-pm] xmltwig: element->first_child ($optional_cond) ? Message-ID: Bonsoir, D?butant avec Perl, je cherche ? apprivoiser xmltwig. Je suis OK avec les manips de base, par contre je n'arrive pas ? ma?triser ces fameuses conditions optionnelles. La doc est un peu courte pour moi. Mettons que j'aie un fichier de la forme : ... ... Mettons que j'aie un XML::Twig::Elt qui pointe sur , comment r?cup?rer le Service avec code="3" ? Merci. Rapha?l CROCHET From mirod at xmltwig.com Tue Dec 3 17:18:02 2002 From: mirod at xmltwig.com (Michel Rodriguez) Date: Mon Aug 2 21:38:16 2004 Subject: [Toulouse-pm] xmltwig: element->first_child ($optional_cond) ? In-Reply-To: References: Message-ID: <1038957425.22892.118.camel@monster.xmltwig.com> On Tue, 2002-12-03 at 22:01, Rapha?l CROCHET wrote: > Bonsoir, > > D?butant avec Perl, je cherche ? apprivoiser xmltwig. > Je suis OK avec les manips de base, par contre je n'arrive pas ? ma?triser ces fameuses conditions optionnelles. > La doc est un peu courte pour moi. > > Mettons que j'aie un fichier de la forme : > > ... > > > > > > > ... > > Mettons que j'aie un XML::Twig::Elt qui pointe sur , comment r?cup?rer le Service avec code="3" ? Salut, Il est tard alors j'ai pas le temps de tester, mais $elt->first_child( 'zone[@code="3"]') doit marcher. Le probleme c'est si le code est dans une variable, passqu'alors les syntaxes Perl et XPath se melangent (entre les " et les @ surtout), et le plus simple c'est de faire un sprintf: $elt->first_child( sprintf( 'zone[@code="%d"]', $code)); Si je me suis plante dis-le et je testerai ;--) -- Michel Rodriguez From kernel at vaboofer.com Wed Dec 4 03:07:00 2002 From: kernel at vaboofer.com (kernel) Date: Mon Aug 2 21:38:16 2004 Subject: [Toulouse-pm] Le Calendrier Perl In-Reply-To: <1038830760.22892.64.camel@monster.xmltwig.com>; from mirod@xmltwig.com on Mon, Dec 02, 2002 at 01:06:01PM +0100 References: <1038830760.22892.64.camel@monster.xmltwig.com> Message-ID: <20021204082820.A14402@vaboofer.com> Le Mon, Dec 02, 2002 at 01:06:01PM +0100, Michel Rodriguez pianota: > Salut, > > Le Calendrier de Noel a commence: http://www.perladvent.org/2002/ > > A ce propos, une question, totalement OT: on se demandait l'autre jour > avec ma femme si ca se faisait en France, le calendrier de Noel, ou on > ouvre une fenetre, qui continet une sucrerie, chaque jour pendant 1 mois > avant Noel. On fait pas ca chez moi mais on est que des mecreants, alors > ca m'interesserait de savoir si ca se faisait chez vous? je l'ai fait pdt des annees (qd noel etait encore qqch de magique:). -- laurent "ker2x" laborde From court-jus at court-jus.net Wed Dec 4 03:43:00 2002 From: court-jus at court-jus.net (Court-Jus) Date: Mon Aug 2 21:38:16 2004 Subject: [Toulouse-pm] Le Calendrier Perl In-Reply-To: <20021204082820.A14402@vaboofer.com> References: <1038830760.22892.64.camel@monster.xmltwig.com> <20021204082820.A14402@vaboofer.com> Message-ID: <20021204093743.GB5655@sonyc> On Wed, Dec 04, 2002 at 08:28:20AM +0100, kernel wrote: > je l'ai fait pdt des annees (qd noel etait encore qqch de magique:). Pareil... Ceci dit j'?tais avec ma ch?re et tendre ce Week-End et elle a pass? une demi journ?e ? chercher des calendriers comme ?a dans les magasins :) -- A + Court-Jus From mirod at xmltwig.com Wed Dec 4 04:00:00 2002 From: mirod at xmltwig.com (Michel Rodriguez) Date: Mon Aug 2 21:38:16 2004 Subject: [Toulouse-pm] Le Calendrier Perl In-Reply-To: <20021204093743.GB5655@sonyc> References: <1038830760.22892.64.camel@monster.xmltwig.com> <20021204082820.A14402@vaboofer.com> <20021204093743.GB5655@sonyc> Message-ID: <1038995952.22892.127.camel@monster.xmltwig.com> On Wed, 2002-12-04 at 10:37, Court-Jus wrote: > On Wed, Dec 04, 2002 at 08:28:20AM +0100, kernel wrote: > > je l'ai fait pdt des annees (qd noel etait encore qqch de magique:). > Pareil... > Ceci dit j'?tais avec ma ch?re et tendre ce Week-End et elle a pass? une > demi journ?e ? chercher des calendriers comme ?a dans les magasins :) Bon, ben il semble bieng que c'est ma famille qui respecte rieng, et surtout pas les traditions catholiques. Au fait, depuis qu'on est passe a Mailman les envois depuis une adresse non abonnee sont soumis a moderation (ca me derange pas de moderer, c'est juste que ca cause du delais). Notament Paul et Ker2x sont dans ce cas. Est-ce que vous voulez que je change votre adresse? -- Michel Rodriguez From webmaster at lefute.com Wed Dec 4 04:08:00 2002 From: webmaster at lefute.com (=?iso-8859-1?Q?S=E9bastien?=) Date: Mon Aug 2 21:38:16 2004 Subject: [Toulouse-pm] Le Calendrier Perl In-Reply-To: <1038995952.22892.127.camel@monster.xmltwig.com>; from mirod@xmltwig.com on Wed, Dec 04, 2002 at 10:59:12AM +0100 References: <1038830760.22892.64.camel@monster.xmltwig.com> <20021204082820.A14402@vaboofer.com> <20021204093743.GB5655@sonyc> <1038995952.22892.127.camel@monster.xmltwig.com> Message-ID: <20021204110422.H529@aglaee.nfrance.com> On Wed, Dec 04, 2002 at 10:59:12AM +0100, Michel Rodriguez wrote: > On Wed, 2002-12-04 at 10:37, Court-Jus wrote: > > On Wed, Dec 04, 2002 at 08:28:20AM +0100, kernel wrote: > > > je l'ai fait pdt des annees (qd noel etait encore qqch de magique:). > > Pareil... > > Ceci dit j'?tais avec ma ch?re et tendre ce Week-End et elle a pass? une > > demi journ?e ? chercher des calendriers comme ?a dans les magasins :) > > Bon, ben il semble bieng que c'est ma famille qui respecte rieng, et > surtout pas les traditions catholiques. La mienne ne respecte donc rien non plus, je te rassure ;) > -- > Michel Rodriguez -- Seb From Paul.Gaborit+pm at enstimac.fr Wed Dec 4 07:19:00 2002 From: Paul.Gaborit+pm at enstimac.fr (Paul Gaborit) Date: Mon Aug 2 21:38:16 2004 Subject: [Toulouse-pm] xmltwig: element->first_child ($optional_cond) ? In-Reply-To: <1038957425.22892.118.camel@monster.xmltwig.com> References: <1038957425.22892.118.camel@monster.xmltwig.com> Message-ID: At 0:17 +0100 4/12/02, Michel Rodriguez wrote: >Il est tard alors j'ai pas le temps de tester, mais $elt->first_child( >'zone[@code="3"]') doit marcher. Le probleme c'est si le code est dans >une variable, passqu'alors les syntaxes Perl et XPath se melangent >(entre les " et les @ surtout), et le plus simple c'est de faire un >sprintf: > >$elt->first_child( sprintf( 'zone[@code="%d"]', $code)); > >Si je me suis plante dis-le et je testerai ;--) C'est vrai que : $elt->first_child("zone[\@code=\"$code\"]"); est peut-?tre moins lisible... Il faut aussi penser aux cas o? $code contient des guillemets ! ;-) -- Paul Gaborit -- DR/GI -- Perl en fran?ais -- From mirod at xmltwig.com Wed Dec 4 08:23:00 2002 From: mirod at xmltwig.com (Michel Rodriguez) Date: Mon Aug 2 21:38:16 2004 Subject: [Toulouse-pm] xmltwig: element->first_child ($optional_cond) ? In-Reply-To: References: <1038957425.22892.118.camel@monster.xmltwig.com> Message-ID: <1039011720.22889.140.camel@monster.xmltwig.com> On Wed, 2002-12-04 at 14:17, Paul Gaborit wrote: > At 0:17 +0100 4/12/02, Michel Rodriguez wrote: > >Il est tard alors j'ai pas le temps de tester, mais $elt->first_child( > >'zone[@code="3"]') doit marcher. Le probleme c'est si le code est dans > >une variable, passqu'alors les syntaxes Perl et XPath se melangent > >(entre les " et les @ surtout), et le plus simple c'est de faire un > >sprintf: > > > >$elt->first_child( sprintf( 'zone[@code="%d"]', $code)); > > > >Si je me suis plante dis-le et je testerai ;--) > > C'est vrai que : > > $elt->first_child("zone[\@code=\"$code\"]"); > > est peut-?tre moins lisible... Dans ces cas la j'utilise qq{}, ca evite de backslasher les ": $elt->first_child( qq{zone[\@code="$code"]}); > Il faut aussi penser aux cas o? $code contient des guillemets ! ;-) Dans ca depend... En mode "normal" (pas de keep_encoding => 1) il suffit de faire $elt->first_child( qq{zone[\@code='$code']}); et ca marche (je sais, je sais, qu'est ce qui se passe quand l'attribut a a la fois des " et des '? J'y ai pas pense'... comme on dit "patches welcome" ;--) En mode keep_encoding il faut connaitre a l'avance l'encodage exact de l'attribut (qui peut etre ecrit zone='to"to' ou zone="to"e;to") et le reproduire exactement. Ca c'est les limites de ce mode, ou XML::Twig essaye de passer l'info du document d'origine tel quelle, ce qui evite les problemes d'encodages et d'entites remplacees intempestivement, mais forcement oblige a tenir compte du format utilise dans ce genre de cas. Bon, en tout cas si l'attribut est un nombre, comme ca a l'air, tout ca c'est plutot de la sodomisation de dypteres ;--) -- Michel Rodriguez From Philippe.Bruhat at free.fr Fri Dec 6 09:03:00 2002 From: Philippe.Bruhat at free.fr (Philippe 'BooK' Bruhat) Date: Mon Aug 2 21:38:16 2004 Subject: [Toulouse-pm] =?ISO-8859-1?Q?Assembl=E9e_G=E9n=E9rale_de_l'Association?= Message-ID: Bonjour, L'Assembl?e G?n?rale de l'association Les Mongueurs de Perl se tiendra le jeudi 19 d?cembre 2002, ? partir de 20h00. Les adh?rents et membres du CA vont recevoir une invitation qui pr?cise le lieu o? se d?roulera l'AG. Les personnes non adh?rentes qui d?sireraient assister ? l'AG peuvent m'?crire pour me demander le lieu de l'AG. Elles seront les bienvenues, mais n'auront pas le droit de vote (normal). Pour qu'un adh?rent puisse donner son pouvoir, il faut un document sign?. Si vous voulez donner votre pouvoir ? quelqu'un, il lui faudra donc un papier sign? indiquant que vous lui donnez pouvoir de voter en vos noms et place lors de l'AG du 19 d?cembre 2002. Les mongueurs d?sirant se pr?senter ? l'?lection au CA sont pri?s de faire acte de candidature en r?ponse ? ce mail. Un certain nombre de membres du CA actuel pensent qu'ils serait int?ressant d'avoir des repr?sentant des groupes non parisiens au CA, pour participer aux r?flexions et d?cisions de l'association. Cela permettrait d'avoir des actions moins "parisiennes". L'un des points de l'ordre du jour est de trouver un mode de fonctionnement avec un CA "distribu?"... L'ordre du jour est disponible ? l'adresse : http://www.mongueurs.net/association/AG/20021219.html -- Philippe "BooK" Bruhat Trust only in incompetence. You will never be disappointed. (Moral from Groo The Wanderer #16 (Epic)) From mirod at xmltwig.com Thu Dec 12 11:59:00 2002 From: mirod at xmltwig.com (Michel Rodriguez) Date: Mon Aug 2 21:38:16 2004 Subject: [Toulouse-pm] Un tutorial OO pas mal Message-ID: <1039715923.9983.3.camel@monster.xmltwig.com> Salut, Un post sympa sur PerlMonks (long et en anglais, vous etes prevenus ;--): http://perlmonks.org/index.pl?node_id=218778 La reponse d'Abigail decrivant une classe bien mieux encapsule que l'habituel hash est a mon avis tres interessante aussi: c'est aussi simple que la methode habituelle et ca assure l'opacite de la structure de donnees (presque, du code utilisateur doit pouvoir se declarer dans le package de la classe et tripatouiller tout son saoul, mais la ca devient du vice!). -- Michel Rodriguez From Paul.Gaborit+pm at enstimac.fr Fri Dec 13 03:09:00 2002 From: Paul.Gaborit+pm at enstimac.fr (Paul Gaborit) Date: Mon Aug 2 21:38:16 2004 Subject: [Toulouse-pm] Un tutorial OO pas mal In-Reply-To: <1039715923.9983.3.camel@monster.xmltwig.com> References: <1039715923.9983.3.camel@monster.xmltwig.com> Message-ID: At 18:58 +0100 12/12/02, Michel Rodriguez wrote: >Salut, > >Un post sympa sur PerlMonks (long et en anglais, vous etes prevenus >;--): http://perlmonks.org/index.pl?node_id=218778 > >La reponse d'Abigail decrivant une classe bien mieux encapsule que >l'habituel hash est a mon avis tres interessante aussi: c'est aussi >simple que la methode habituelle et ca assure l'opacite de la structure >de donnees (presque, du code utilisateur doit pouvoir se declarer dans >le package de la classe et tripatouiller tout son saoul, mais la ca >devient du vice!). C'est vrai que cet article (et ses commentaires) est sympa. Quant ? la r?ponse d'Abigail, elle est int?ressante mais ne convient pas dans tous les cas. En particulier, lorsqu'on veut faire un "dump" ou une "s?rialisation" de l'objet. Il ne contient pas ses attributs ! Cela me semble ?tre un probl?me. Il faut donc ajouter une m?thode de s?rialisation qui doit ?tre modifi?e ? chaque ajout d'attribut... -- Paul Gaborit -- DR/GI -- Perl en fran?ais -- From mirod at xmltwig.com Fri Dec 13 04:46:01 2002 From: mirod at xmltwig.com (Michel Rodriguez) Date: Mon Aug 2 21:38:16 2004 Subject: [Toulouse-pm] Un tutorial OO pas mal Message-ID: <1039776318.9983.42.camel@monster.xmltwig.com> On Fri, 2002-12-13 at 10:07, Paul Gaborit wrote: > Quant ? la r?ponse d'Abigail, elle est int?ressante mais ne convient > pas dans tous les cas. En particulier, lorsqu'on veut faire un "dump" > ou une "s?rialisation" de l'objet. Il ne contient pas ses attributs ! > Cela me semble ?tre un probl?me. Il faut donc ajouter une m?thode de > s?rialisation qui doit ?tre modifi?e ? chaque ajout d'attribut... La methode de serialization peut etre simple, il suffit de stocker la liste des hash qui contiennent les attributs et de la parcourir. Si on veut vraiment faire OO on peut remplacer les adresses des hash par les adresses des methodes qui donnent la valeur des attributs. On pourrait aussi faire encore plus sioux et generer les noms des methodes a partir des noms des champs (ca marche pas ici a cause de 'is_approved', mais si on avait toujours 'get' par example un petit coup de ' eval "get_$field->($self)" ' devrait bieng marcher (mais pas vite)). Voila l'exemple d'Abigail avec les 2 methodes (et une typo corrigee dans l'original): #!/usr/bin/perl -w use strict; use Data::Dumper; my $quote= Quote->new(); $quote->set_phrase( q{I don't know if it's what you want, but it's what you get. :-)}); $quote->set_author( q{Larry Wall}); $quote->is_approved( 1); my %serialized= $quote->serialize; print Dumper \%serialized; my %oo_serialized= $quote->oo_serialize; print Dumper \%oo_serialized; package Quote; use strict; use warnings; my (%phrase, %author, %approved); my %fields; BEGIN { %fields= ( phrase => \%phrase, author => \%author, approved => \%approved); } my %serialize_att; BEGIN { %serialize_att= ( phrase => \&get_phrase, author => \&get_author, approved => \&is_approved); } sub new { bless [] => shift; # Any reference will do. } sub serialize { my $self= shift; return map { $_ => $fields{$_}{$self} } keys %fields; } sub oo_serialize { my $self= shift; return map { $_ => $serialize_att{$_}->($self) } keys %fields; } sub set_phrase { my $self = shift; my $phrase = shift; $phrase {$self} = $phrase; } sub get_phrase { my $self = shift; return $phrase {$self}; } sub set_author { my $self = shift; my $author = shift; $author {$self} = $author; } sub get_author { my $self = shift; return $author {$self}; } sub is_approved { my $self = shift; @_ ? $approved {$self} = shift : $approved {$self}; } sub DESTROY { my $self = shift; delete $phrase {$self}; delete $author {$self}; delete $approved {$self}; } -- Michel Rodriguez From Paul.Gaborit+pm at enstimac.fr Fri Dec 13 07:33:00 2002 From: Paul.Gaborit+pm at enstimac.fr (Paul Gaborit) Date: Mon Aug 2 21:38:16 2004 Subject: [Toulouse-pm] Un tutorial OO pas mal In-Reply-To: <1039776318.9983.42.camel@monster.xmltwig.com> References: <1039776318.9983.42.camel@monster.xmltwig.com> Message-ID: At 11:45 +0100 13/12/02, Michel Rodriguez wrote: >On Fri, 2002-12-13 at 10:07, Paul Gaborit wrote: > >> Quant ? la r?ponse d'Abigail, elle est int?ressante mais ne convient >> pas dans tous les cas. En particulier, lorsqu'on veut faire un "dump" >> ou une "s?rialisation" de l'objet. Il ne contient pas ses attributs ! >> Cela me semble ?tre un probl?me. Il faut donc ajouter une m?thode de >> s?rialisation qui doit ?tre modifi?e ? chaque ajout d'attribut... > >La methode de serialization peut etre simple, il suffit de stocker la >liste des hash qui contiennent les attributs et de la parcourir. Si on >veut vraiment faire OO on peut remplacer les adresses des hash par les >adresses des methodes qui donnent la valeur des attributs. On pourrait >aussi faire encore plus sioux et generer les noms des methodes a partir >des noms des champs (ca marche pas ici a cause de 'is_approved', mais si >on avait toujours 'get' par example un petit coup de ' eval >"get_$field->($self)" ' devrait bieng marcher (mais pas vite)). Ok. Ce que je voulais signaler, c'est qu'il faut refaire cette m?thode ? chaque fois qu'on veut faire de la s?rialisation. Par exemple, si on veut utiliser Storable, il faut impl?menter les m?thodes STORABLE_freeze et STORABLE_thaw ce qui n'est pas n?cessaire avec les impl?mentations plus classiques. Un appel ? Dumper (de Data::Dumper) sur l'objet ne fournit pas les donn?es. Il faut passer par le r?sultat d'une m?thode (comme tu le proposes). Or les gains de la m?thode Abigail me semblent bien faibles par rapport ? ces d?fauts... Mais ce n'est que mon avis et je conviens que cette m?thode est quand m?me int?ressante. -- Paul Gaborit -- DR/GI -- Perl en fran?ais -- From rlehy at free.fr Fri Dec 13 07:57:00 2002 From: rlehy at free.fr (Ronan Le Hy) Date: Mon Aug 2 21:38:16 2004 Subject: [Toulouse-pm] relecture perlreftut Message-ID: <3DF9E726.7060700@free.fr> [-> all qw/lyon.pm toulouse.pm/] Salut, Est-ce qu'un mongueur ou un mongueur-cong aurait une seconde pour relire la traduction que je viens de faire de perlreftut (le tutoriel de mjd sur les r?f?rences)? Ronan -------------- next part -------------- =head1 NOM perlreftut - le tr?s court tutoriel de Mark sur les r?f?rences =head1 DESCRIPTION Une des caract?ristiques nouvelles les plus importantes de Perl 5 a ?t? la capacit? de g?rer des structures de donn?es compliqu?es comme les tableaux multidimensionels et les tables de hachage imbriqu?es. Pour les rendre possibles, Perl 5 a introduit un m?canisme appel? "r?f?rences" ; l'utilisation de celles-ci est le moyen de travailler avec des donn?e complexes structur?es en Perl. Malheureusement, cela fait une grande quantit? de syntaxe nouvelle ? apprendre, et la page de manuel est parfois difficile ? suivre. Cette derni?re est tr?s compl?te, et cela peut ?tre un probl?me parce qu'il est difficile d'en tirer ce qui est important et ce qui ne l'est pas. Heureusement, vous avez seulement besoin de savoir 10% de ce qui est dans la page de manuel principale pour tirer 90% de son b?n?fice. Cette page esp?re vous montrer ces 10%. =head1 Qui a Besoin de Structures de Donn?es Compliqu?es? Un probl?me qui revenait souvent avec Perl 4 ?tait celui de la repr?sentation d'une table de hachage dont les valeurs sont des listes. Perl 4 avait les tables de hachage, bien s?r, mais les valeurs devaient ?tre des scalairee ; elles ne pouvaient ?tre des listes. Pourquoi voudrait-on utiliser une table de hachage contenant des listes ? Prenons un exemple simple. Vous avez un fichier contenant des noms de villes et de pays, comme ceci: Chicago, USA Frankfort, Allemagne Berlin, Allemagne Washington, USA Helsinki, Finlande New York, USA et vous voulez produire une sortie comme cela, avec chaque pays mentionn? une seule fois, suivi d'une liste des villes de ce pays : Finlande: Helsinki. Allemagne: Berlin, Frankfort. USA: Chicago, New York, Washington. La fa?on naturelle de faire ceci est de construire une table de hachage dont les cl?s sont les noms des pays. A chaque pays cl? on associe une liste des villes de ce pays. Chaque fois qu'on lit une ligne en entr?e, on la s?pare en un pays et une ville, on recherche la liste de villes d?j? connues pour ce pays, et on y ajoute la nouvelle ville. Quand on a fini de lire les donn?es en entr?e, on parcourt la table de hachage, en triant chaque liste de villes avant de l'afficher. Si les valeurs des tables de hachage ne peuvent ?tre des listes, c'est perdu. En Perl 4, c'est le cas ; ces valeurs ne peuvent ?tre que de cha?nes de caract?res. C'est donc perdu. Nous devrions probablement essayer de combiner toutes les villes dans une seule grande cha?ne de caract?res, et au moment d'?crire la sortie, couper cette cha?ne pour en faire une liste, la trier, et la re-convertir en cha?ne de caract?res. C'est compliqu?, et il est facile de faire des erreurs dans le processus. C'est surtout frustrant, parce que Perl a d?j? de tr?s belles listes qui r?soudraient le probl?me, si seulement nous pouvions les utiliser. =head1 La Solution Avant m?me que Perl 5 ne point?t le bout de son nez, nous ?tions donc coinc?s avec ce fait de conception : les valeurs de tables de hachage doivent ?tre des scalaires. Les r?f?rences sont la solution ? ce probl?me. Une r?f?rence est une valeur scalaire qui I un tableau entier ou ? une table de hachage enti?re (ou ? ? peu pr?s n'importe quoi d'autre). Les noms sont une forme de r?f?rence dont vous ?tes d?j? familier. Pensez au Pr?sident des Etats-Unis d'Amerique: ce n'est qu'un tas d?sordonn? et malpratique de sang et d'os. Mais pour parler de lui, ou le repr?senter dans un programme d'ordinateur, tout ce dont vous avez besoin est le sympathique et maniable scalaire "George Bush". Les r?f?rences en Perl sont comme des noms pour les tableaux et les tables de hachage. Ce sont des noms priv?s et internes de Perl, vous pouvez donc ?tre s?r qu'ils ne sont pas ambigus. Au contraire de "George Bush", une r?f?rence pointe vers une seule chose, et il est toujours possible de savoir vers quoi. Si vous avez une r?f?rence ? un tableau, vous pouvez acc?der au tableau complet qui est derri?re. Si vous avez une r?f?rence ? une table de hachage, vous pouvez acc?der ? la table enti?re. Mais la r?f?rence reste un scalaire, compact et facile ? manipuler. Vous ne pouvez pas construire une table de hachage dont les valeurs sont des tableaux : les valeurs des tables de hachage ne peuvent ?tre que des scalaires. Nous y somme condamn?s. Mais une seule r?f?rence peut pointer vers un tableau entier, et les r?f?rences sont des scalaires, donc vous pouvez avoir une table de hachage de r?f?rences ? des tableaux, et elle agira presque comme une table de hachage de tableaux, et elle pourra servir juste comme une table de hachage de tableaux. Nous reviendrons ? notre probl?me de villes et de pays plus tard, apr?s avoir introduit un peu de syntaxe pour g?rer les r?f?rences. =head1 Syntaxe Il n'y a que deux fa?ons de construire une r?f?rence, et deux fa?ons de l'utiliser une fois qu'on l'a. =head2 Construire des R?f?rences B Si vous mettez un C<\> devant une variable, vous obtenez une r?f?rence ? cette variable. $tref = \@tableau; # $tref contient maintenant une r?f?rence # ? @tableau $href = \%hachage; # $href contient maintenant une r?f?rence # ? %hachage Une fois que la r?f?rence est stock?e dans une variable comme $tref ou $href, vous pouvez la copier ou la stocker ailleurs comme n'importe quelle autre valeur scalaire : $xy = $tref; # $xy contient maintenant une r?f?rence # ? @tableau $p[3] = $href; # $p[3] contient maintenant une r?f?rence # ? %hachage $z = $p[3]; # $z contient maintenant une r?f?rence # ? %hachage Ces exemples montrent comment cr?er des r?f?rences ? des variables avec un nom. Parfois, on veut utiliser un tableau ou une table de hachage qui n'a pas de nom. C'est un peu comme pour les cha?nes de caract?res et les nombres : on veut ?tre capable d'utiliser la cha?ne C<"\n"> ou le nombre 80 sans avoir ? les stocker dans une variable nomm?e d'abord. B C<[ ELEMENTS ]> cr?e un nouveau tableau anonyme, et renvoie une r?f?rence ? ce tableau. C<{ ELEMENTS }> cr?e une nouvelle table de hachage anonyme et renvoie une r?f?rence ? cette table. $tref = [ 1, "toto", undef, 13 ]; # $tref contient maintenant une r?f?rence ? un tableau $href = { AVR => 4, AOU => 8 }; # $href contient maintenant une r?f?rence ? une table de hachage Les r?f?rences obtenues gr?ce ? la r?gle 2 sont de la m?me esp?ce que celles obtenues par la r?gle 1 : # Ceci : $tref = [ 1, 2, 3 ]; # Fait la m?me chose que cela : @tableau = (1, 2, 3); $tref = \@tableau; La premi?re ligne est une abbr?viation des deux lignes suivantes, ? ceci pr?s qu'elle ne cr?e pas la variable tableau superflue C<@tableau>. =head2 Utiliser les R?f?rences Une fois qu'on a une r?f?rence, que peut-on en faire? C'est une valeur scalaire, et nous avons vu que nous pouvons la stocker et la r?cup?rer ensuite comme n'importe quel autre scalaire. Il y juste deux fa?ons de plus de l'utiliser : B Si C<$tref> contient une r?f?rence ? un tableau, vous pouvez ?crire C<{$tref}> l? o? vous mettriez le nom d'un tableau. Par exemple, C<@{$tref}> ? la place de C<@array>. En voici quelques exemples : Tableaux : @t @{$tref} Un tableau reverse @t reverse @{$tref} Retourner le tableau $t[3] ${$tref}[3] Un ?l?ment du tableau $t[3] = 17; ${$tref}[3] = 17 Affecter un ?l?ment Sur chaque ligne, les deux expresions font la m?me chose. Celles de gauche travaillent sur le tableau C<@t>, et celles de droite travaillent sur le tableau vers lequel pointe C<$tref> ; mais une fois qu'elle ont acc?d? au tableau sur lequel elles op?rent, elles leur font exactement la m?me chose. On utilise une r?f?rence ? une table de hachage C de la m?me fa?on : %h %{$href} Une table de hachage keys %h keys %{$href} Obtenir les cl?s de la table $h{'bleu'} ${$href}{'bleu'} Un ?l?ment de la table $h{'bleu'} = 17 ${$href}{'bleu'} = 17 Affecter un ?l?ment B C<${$tref}[3]> est trop dur ? lire, vous pouvez donc ?crire C<< $tref->[3] >> ? la place. C<${$href}{bleu}> est trop dur ? lire, vous pouvez donc ?crire C<< $href->{bleu} >> ? la place. La plupart du temps, quand vous avez un tableau ou une table de hachage, vous voulez modifier ou obtenir un ?l?ment particulier. C<${$tref}[3]> et C<${$tref}{'bleu'}> ont trop de ponctuation, et Perl vous laisse prendre un raccourci. Si C<$tref> est une r?f?rence ? un tableau, alors C<< $tref->[3] >> est le quatri?me ?l?ment du tableau. Ne m?langez pas ?a avec C<$tref[3]>, qui est le quatri?me ?l?ment d'un tout autre tableau, trompeusement nomm? C<@tref>. C<$tref> et C<@tref> ne sont pas reli?s, pas plus que C<$truc> et C<@truc>. De la m?me fa?on, C<< $href->{'bleu'} >> est une partie de la table de hachage vers laquelle pointe C<$href>, et qui ne porte peut-?tre pas de nom. C<$href{'bleu'}> est une partie de la table de hachage trompeusement nomm?e C<%href>. Il est facile d'oublier le C<< -> >>, et si cela vous arrive vous obtiendrez des r?sultats ?tranges comme votre programme utilisera des tableaux et des tables de hachage issus de tableaux et de tables de hachages qui n'?taient pas ceux que vous aviez l'intention d'utiliser. =head1 Un Exemple Voyons un rapide exemple de l'utilit? de tout ceci. D'abord, souvenez-vous que C<[1, 2, 3]> construit un tableau anonyme contenant C<(1, 2, 3)>, et vous renvoie une r?f?rence ? ce tableau. Maintenant, consid?rez @t = ( [1, 2, 3], [4, 5, 6], [7, 8, 9] ); @t est un tableau ? trois ?l?ments, et chacun d'entre eux est une r?f?rence ? un autre tableau. C<$t[1]> est l'une de ces r?f?rences. Elle pointe vers un tableau, celui contenant C<(4, 5, 6)>, et puisque c'est une r?f?rence ? un tableau, la Cdit que nous pouvons ?crire C<< $t[1]->[2] >> pour acc?der au troisi?me ?l?ment du tableau. C<< $t[1]->[2] >> est le 6. De la m?me fa?on, C<< $t[0]->[1] >> est le 2. Nous avons ce qui ressemble ? un tableau ? deux dimensions ; vous pouvez ?crire C<< $t[LIGNE]->[COLONNE] >> pour obtenir ou modifier l'?l?ment se trouvant ? une ligne et une colonne donn?es du tableau. Notre notation est toujours quelque peu maladroite, voici donc un raccourci de plus : =head1 R?gle de la Fl?che Entre deux B, la fl?che et facultative. A la place de C<< $t[1]->[2] >>, nous pouvons ?crire C<$t[1][2]> ; cela veut dire la m?me chose. A la place de C<< $t[0]->[1] >>, nous pouvons ?crire C<$t[0][1]> ; cela veut dire la m?me chose. Maintenant on dirait vraiment un tableau ? deux dimensions ! Vous pouvez voir pourquoi les fl?ches sont importantes. Sans elles, nous devrions ?crire C<${$t[1]}[2]> ? la place de C<$t[1][2]>. Pour les tableaux ? trois dimensions, elles nous permettent d'?crire C<$x[2][3][5]> ? la place de l'illisible C<${${$x[2]}[3]}[5]>. =head1 Solution Voici maintenant la r?ponse au probl?me que j'ai pos? plus haut, qui consistait ? reformatter un fichier de villes et de pays. 1 while (<>) { 2 chomp; 3 my ($ville, $pays) = split /, /; 4 push @{$table{$pays}}, $ville; 5 } 6 7 foreach $pays (sort keys %table) { 8 print "$pays: "; 9 my @villes = @{$table{$pays}}; 10 print join ', ', sort @villes; 11 print ".\n"; 12 } Le programme a deux parties : les lignes 1 ? 5 lisent les donn?es et construisent une structure de donn?es, et les lignes 7 ? 12 analysent les donn?es et impriment un rapport. Dans la premi?re partie, la ligne 4 est la plus importante. Nous allons construire une table de hachage, C<%table>, dont les cl?s sont les noms de pays, et dont les valeurs sont des (r?f?rences ? des) tableaux de noms de villes. Apr?s avoir lu une ville et un pays, le programme acc?de ? C<$table{$pays}>, qui contient (une r?f?rence ?) une liste des villes vues dans ce pays jusque l?. La ligne 4 est tout ? fait analogue ? push @tableau, $ville; sauf que le nom C a ?t? remplac? par la r?f?rence C<{$table{$pays}}>. Le C ajoute une ville ? la fin du tableau auquel il est fait r?f?rence. Dans la seconde partie, la ligne 9 est celle qui compte. Encore une fois, C<$table{$pays}> est (une r?f?rence ?) la liste de villes dans le pays, donc nous pouvons retrouver la liste originale et la copier dans le tableau C<@villes>, en utilisant C<@{$table{$pays}}>. La ligne 9 est tout ? fait analogue ? @villes = @tableau; sauf que le nom C a ?t? remplac? par la r?f?rence C<{$table{$pays}}>. Le C<@> dit ? Perl d'obtenir le tableau complet. Le reste du programme consiste juste en l'usage familier de C, C, C, C, et n'implique aucune r?f?rence. Il y a un point d?licat que j'ai ignor?. Imaginez que le programme vienne de lire la premi?re ligne de donn?es, qui se trouve mentionner la Gr?ce. Le contr?le est ? la ligne 4, C<$pays> vaut C<'Gr?ce'>, et C<$ville> vaut C<'Ath?nes'>. Puisque c'est la premi?re ville qu nous voyons pour la Gr?ce, C<$table{$pays}> n'est pas d?fini -- en fait, il n'y a pas de cl? nomm?e C<'Gr?ce'> dans C<%table>. Que fait alors la ligne 4 ? 4 push @{$table{$pays}}, $ville; Nous avons affaire ? Perl, qui fait juste ce qu'il faut. Perl voit que vous voulez pousser C sur un tableau qui n'existe pas, et cr?e donc aimablement un nouveau tableau vide anonyme pour vous, l'installe dans la table, et pousse C dedans. On appelle cela "l'autovification". =head1 Le Reste J'ai promis de vous donner acc?s ? 90% du b?n?fice avec 10% des d?tails, et cela implique que j'ai laiss? de c?t? 90% des d?tails. Maintenant que vous avez une vue d'ensemble des ?l?ments importants, il devrait vous ?tre plus facile de lire la page de manuel L, qui passe en revue 100% des d?tails. Quelques unes de grande lignes de L : =over 4 =item * Vous pouvez cr?er des r?f?rences ? n'importe quoi, ce qui inclut des scalaires, des fonctions, et d'autres r?f?rences. =item * Dans la B, vous pouvez omettre les accolades quand ce qui est ? l'int?rieur est une variable scalaire atomique comme C<$tref>. Par exemple, C<@$tref> est identique ? C<@{$tref}>, et C<$$tref[1]> est identique ? C<${$tref}[1]>. Si vous ne faites que commencer, vous pourriez pr?f?rer adopter l'habitude de toujours ?crire les accolades. =item * Pour voir si une variable contient une r?f?rence, utilisez la fonction "ref". Elle renvoie vrai si son argument est une r?f?rence. En fait, c'est encore mieux que ?a : elle renvoie HASH pour les r?f?rences ? une table de hachage et ARRAY pour les r?f?rences ? un tableau. =item * Si vous essayez d'utiliser une r?f?rence comme une cha?ne de caract?res, vous obtenez quelquechose comme ARRAY(0x80f5dec) ou HASH(0x826afc0) Si jamais vous voyez une cha?ne de caract?res qui ressemble ? ?a, vous saurez que vous avez imprim? une r?f?rence par erreur. Un effet de bord de cette repr?sentation est que vous pouvez utiliser C pour savoir si deux r?f?rences pointent vers la m?me chose. (Mais d'ordinaire vous devriez plut?t utiliser C<==> parce que c'est beaucoup plus rapide.) =item * Vous pouvez utiliser une cha?ne de caract?res comme si c'?tait une r?f?rence. Si vous utilisez la cha?ne C<"foo"> comme une r?f?rence ? un tableau, elle est prise comme une r?f?rence au tableau C<@foo>. On appelle cela une C. =back Vous pourriez pr?f?rer continuer avec L au lieu de L ; il y est trait? des listes de listes et des tableaux multidimensionnels en d?tail. Apr?s cela, vous devriez avancer vers L ; c'est un livre de recettes pour les structures de donn?es (I) qui montre les recettes pour utiliser et imprimer les tableaux de tables de hachage, les tables de hachage de tableaux, et les autres sortes de donn?es. =head1 R?sum? Tout le monde a besoin de structures de donn?es complexes, et les r?f?rences sont le moyen d'y acc?der en Perl. Il y a quatre r?gles importantes pour manipuler les r?f?rences : deux pour les construire, et deux pour les utiliser. Une fois que vous connaissez ces r?gles, vous pouvez faire la plupart des choses importantes que vous devez faire avec des r?f?rences. =head1 Cr?dits Auteur : Mark-Jason Dominus, Plover Systems (C) Cet article est paru ? l'origine dans I ( http://www.tpj.com/ ) volume 3, # 2. R?imprim? avec permission. Le titre original ?tait I (I). =head2 Distribution Conditions Copyright 1998 The Perl Journal. When included as part of the Standard Version of Perl, or as part of its complete documentation whether printed or otherwise, this work may be distributed only under the terms of Perl's Artistic License. Any distribution of this file or derivatives thereof outside of that package require that special arrangements be made with copyright holder. Irrespective of its distribution, all code examples in these files are hereby placed into the public domain. You are permitted and encouraged to use this code in your own programs for fun or for profit as you see fit. A simple comment in the code giving credit would be courteous but is not required. =head2 Conditions de Distribution Copyright 1998 The Perl Journal. Quand il est partie de la Version Standard de Perl, ou de sa documentation compl?te imprim?e ou non, ce travail peut ?tre distribu? uniquement selon les termes de la License Artistique de Perl. N'importe quelle distribution de ce fichier ou de ses d?riv?s hors de cet ensemble requiert un arrangement sp?cial avec le d?tenteur du copyright. Quel que soit leur mode de distribution, tous les exemples de code de ces fichiers sont par ce document plac?s dans le domaine public. Vous ?tes autoris? et encourag? ? utiliser ce code dans vos programmes ? fins commerciales ou d'amusement, comme vous le souhaitez. Un simple commentaire dans le code signalant son origine serait courtois mais n'est pas requis. =head1 VERSION FRAN?AISE Cette traduction fran?aise correspond ? la version anglaise distribu?e avec perl 5.8.0. Pour en savoir plus concernant ces traductions, consultez http://www.enstimac.fr/Perl/ . =head1 TRADUCTION Traduction initiale : Ronan Le Hy (C). =head1 RELECTURE Personne pour l'instant. =cut From mirod at xmltwig.com Fri Dec 13 14:18:01 2002 From: mirod at xmltwig.com (Michel Rodriguez) Date: Mon Aug 2 21:38:16 2004 Subject: [Toulouse-pm] Un tutorial OO pas mal Message-ID: <1039810655.10027.70.camel@monster.xmltwig.com> Je voulais juste signaler que Paul n'est pas le seul a trouver que il faudrait ameliorer la serialization (entre autre) dans le modele decrit par Abigail: http://perlmonks.org/index.pl?node_id=219728 decrit une super classe qui fournit des methodes toutes faites pour faciliter le developement (zut! 1 ou 2 'p'?) de classes "inside-out". -- Michel Rodriguez From Philippe.Bruhat at free.fr Sun Dec 15 18:22:01 2002 From: Philippe.Bruhat at free.fr (Philippe 'BooK' Bruhat) Date: Mon Aug 2 21:38:16 2004 Subject: [Toulouse-pm] AG de l'association Message-ID: <20021216002151.GA12639@home.bruhat.net> Bonjour, L'Assembl?e G?n?rale de l'association Les Mongueurs de Perl se tiendra le jeudi 19 d?cembre 2002, ? partir de 20h00, comme vous le savez s?rement d?j?. Les adh?rents et membres du CA ont re?u une invitation qui pr?cise le lieu o? se d?roulera l'AG. Les personnes non adh?rentes qui d?sireraient assister ? l'AG peuvent m'?crire pour me demander le lieu de l'AG. Elles seront les bienvenues, mais n'auront pas le droit de vote (normal). Pour qu'un adh?rent puisse donner son pouvoir, il faut un document sign?. Si vous voulez donner votre pouvoir ? quelqu'un, il lui faudra donc un papier sign? indiquant que vous lui donnez pouvoir de voter en vos noms et place lors de l'AG du 19 d?cembre 2002. RAPPEL IMPORTANT : Les mongueurs d?sirant se pr?senter ? l'?lection au CA sont pri?s de faire acte de candidature en r?ponse ? ce mail. Un certain nombre de membres du CA actuel pensent qu'ils serait int?ressant d'avoir des repr?sentant des groupes non parisiens au CA, pour participer aux r?flexions et d?cisions de l'association. Cela permettrait d'avoir des actions moins "parisiennes". L'un des points de l'ordre du jour est de trouver un mode de fonctionnement avec un CA "distribu?"... (Toulouse, Marseille, Lyon, c'est ? vous qu'on s'adresse !) L'ordre du jour a ?t? l?g?rement modifi?, et est disponible ? l'adresse : http://www.mongueurs.net/association/AG/20021219.html -- Philippe "BooK" Bruhat Everyone's life seems easier from the outside. (Moral from Groo The Wanderer #45 (Epic)) From mirod at xmltwig.com Wed Dec 18 03:20:01 2002 From: mirod at xmltwig.com (Michel Rodriguez) Date: Mon Aug 2 21:38:16 2004 Subject: [Toulouse-pm] YAIOOC (Yet Another Inside-Out Object Class) Message-ID: <1040203152.30195.48.camel@monster.xmltwig.com> Salut, Pour Paul, encore une classe qui fait des objets a-la-Abigail: http://perlmonks.org/index.pl?node_id=220776 Ce concept a l'air d'avoir particulierement excite les Moines ;--) -- Michel Rodriguez From Paul.Gaborit+pm at enstimac.fr Wed Dec 18 05:20:01 2002 From: Paul.Gaborit+pm at enstimac.fr (Paul Gaborit) Date: Mon Aug 2 21:38:16 2004 Subject: [Toulouse-pm] YAIOOC (Yet Another Inside-Out Object Class) In-Reply-To: <1040203152.30195.48.camel@monster.xmltwig.com> References: <1040203152.30195.48.camel@monster.xmltwig.com> Message-ID: At 10:19 +0100 18/12/02, Michel Rodriguez wrote: >Salut, > >Pour Paul, encore une classe qui fait des objets a-la-Abigail: > >http://perlmonks.org/index.pl?node_id=220776 > >Ce concept a l'air d'avoir particulierement excite les Moines ;--) Cette impl?mentation me semble plus prometteuse. En tous cas plus simple ? mettre en oeuvre. Et effectivement, il y a une tentative de trouver une solution au probl?me de la s?rialisation. J'aime bien les commentaires finaux (en + et en -). Ce qui m'impressionne toujours autant, c'est la mall?abilit? de Perl pour ce genre de questions. C'est vraiment une richesse extraordinaire m?me si certains trouvent cela plus perturbant qu'autre chose... -- Paul Gaborit -- DR/GI -- Perl en fran?ais -- From eric.vernichon.ev at borchers.fr Mon Dec 23 03:05:00 2002 From: eric.vernichon.ev at borchers.fr (eric.vernichon.ev@borchers.fr) Date: Mon Aug 2 21:38:16 2004 Subject: [Toulouse-pm] Erreur odbc In-Reply-To: <1029148228.14490.491.camel@mirlin.xmltwig.com> Message-ID: Bonjour , J'ai un script perl qui lit une base odbc pour g?n?rer un fichier. Au bout d'un certain nombre d'it?ration le script plante en me renvoyant un code d'erreur [911] [8177] [0] Si j'ai bien compris le premier num?ro est un code d'erreur. Ma question est o? trouver ? quoi correspond cette erreur ? C'est un code d'erreur du driver odbc ou de perl ? Cordialement Eric Vernichon ------------------------------------------------------------- Borchers France S.A. Service Informatique Rue Albert Calmette F-81100 Castres T?l?phone : +33 (0)5 63 72 65 80 T?l?fax : +33 (0)5 63 59 70 06 E-mail : eric.vernichon.ev@borchers.fr From eric.vernichon.ev at borchers.fr Mon Dec 30 07:41:00 2002 From: eric.vernichon.ev at borchers.fr (eric.vernichon.ev@borchers.fr) Date: Mon Aug 2 21:38:16 2004 Subject: [Toulouse-pm] Nom Variable automatiques Message-ID: Bonjour , Voila mon probl?me j'ai un programme utilisant TK avec un nombre de ligne ( dans un grille ) determin? par le contenu d'un fichier ini. j'ai besoin de pouvoir cr??r des nom de variables de mani?res automatiques c'est ? dire que je boucle sur le contenu d'un tableau foreach $serveur ( @serveurs) { $i = $i+1 my "\$label$i" = $root->Label ( -text => '$serveur'); } je voudrais que le nom de la variable $non_label soit d?fini automatiquement par exemple label_01 , label_02 .... je ne sais pas si je suis tr?s clair mais en fait je voudrais que le programme utilise le contenu d'une variable chaine pour le nom de la variable. Eric Vernichon From mrodrigu at ieee.org Mon Dec 30 08:07:00 2002 From: mrodrigu at ieee.org (Michel Rodriguez) Date: Mon Aug 2 21:38:16 2004 Subject: [Toulouse-pm] Nom Variable automatiques In-Reply-To: Message-ID: On Mon, 30 Dec 2002 eric.vernichon.ev@borchers.fr wrote: > je ne sais pas si je suis tr?s clair mais en fait je voudrais que > le programme utilise le contenu d'une variable chaine pour le nom de la > variable. Salut, Je ne sais pas dire si dans ton cas tu as vraiment besoin de ca, c'est possible, mais en general c'est une TRES mauvaise idee. Utilise plutot un hash ou un tableau. Vois http://perl.plover.com/varvarname.html pour des explications detaillees (en gros avec un hash/array c'est plus facile de manipuler les variables et tu evites les risques de collisions de noms de variables dans 3 mois quand tu auras oublie que serveur_12 est deja utilise). Michel Rodriguez Perl & XML http://www.xmltwig.com