(Courriels de diversion: <admettra@enterinee-situeras.com> <decrocherez@complote-retrousses.com> <alternant@trancherez-signataires.com> <lustrerai@pavoisons-croiseras.com> <connectee@redingotes-decernais.com> <discredits@corniches-mesquineries.com> <demoulent@floue-pretendrais.com> <regionaliserait@verse-recevront.com> <massacrerais@crâneuse-repeterez.com> <sacristain@frenetiquement-asynchrones.com> )
Eric Marsden wrote: > Dans la série O'Reilly sur Perl, il y a un premier livre pour > débutants, qui explique comment utiliser les expressions régulières, > les boucles, etc. Puis lorsque le programmeur veut un peu structurer > ses programmes, il peut lire les 500 pages du livre "Programmation > Perl", qui explique comment faire des fonctions, utiliser les tables > de hachage, présente les fonctions standard de Perl. Mais pour savoir > comment fonctionne le passage de paramètres à une fonction, les > références et les file handles, il faut lire le livre "Perl avancé" > (on a tous ces trois livres à l'association, me semble t'il). OK, en bref il faut acheter les 3 bouquins pour esperer pondre un programme un tant soit peu chiade ;-D <espace publicitaire> > > La vraie solution serait d'utiliser un langage propre et bien foutu à > la base, comme Python <URL:http://www.python.org/> ou Scheme > <URL:http://www.schemers.org/>. </espace publicitaire> Si tu persistes, voilà comment faire: eh oui je persiste... > > $first = "chaine"; > @second = ( "a", "b" ); > %third = ( "a" => "aa", "b" => "bb" ); > > sub trucMiChouette { > my($first, $second, $third) = @_; > > print $first, $$second[0], $$third{'a'}; > } > > &trucMiChouette($first, \@second, \%third); > > Dans un contexte liste tel que celui des parenthèses d'appel de ta > fonction, Perl concatène les tableaux, donc tu trouvais le contenu de > @third dans @second. Pour passer des tableaux ou des hachages > correctement, il faut les passer par référence (ah, tu pensais éviter > les merdes des pointeurs en utilisant un langage de haut niveau: ben > non). Dans la fonction tu récupères une référence, que tu > dois déréférencer pour accéder au tableau, càd $@second ou $%third. > Puis, avec cette beauté propré à Perl, les premiers éléments de ces > structures de données sont $$second[0] et $$third{'a'}. Ca me laisse deja presager de l'horrible foreach imbrique necessaire pour recuperer le 2eme tableau... Bon je pense saisir ton explication (mon unique neurone souffre). J'en deduis que s'il me fallait passer en parametre non pas 2 tableaux mais 3, le 3eme tableau (qui serait associatif = %array) contiendrait lui meme des tableaux associatifs (qui contiendraient des tableaux (@array)) ?? Ce qui est hallucinant, c'est que sur net on trouve un quantite incroyable de "Introduction to Perl", "A Perl Tutorial: Super-Basics", "Perl tutorial: A basic program" mais jamais la reponse a la precedente question, ce n'est pourtant pas faute d'avoir cherche. > > Et dire que des gens m'ont dit que l'exposé sur Scheme était > compliqué! Je peux difficilement etre en desaccord avec toi... J'avais espere que PERL etait quand meme plus souple que ca, meme en C on fait ca de maniere plus eleguante. David. _______________________________________________________________________ Le CULTe sur le ouebe: http://savage.iut-blagnac.fr/