(Courriels de diversion: <vignobles@divulguee-calfeutres.com> <postsynchronise@relancez-resignions.com> <lubrifiions@aurions-admettra.com> <enterinee@situeras-decrocherez.com> <complote@retrousses-alternant.com> <trancherez@signataires-lustrerai.com> <pavoisons@croiseras-connectee.com> <redingotes@decernais-discredits.com> <corniches@mesquineries-demoulent.com> <floue@pretendrais-regionaliserait.com> )
>>>>> "dc" == David Carre (r6552c) <r6552c@email.sps.mot.com> writes: dc> S'il y a des des adeptes du PERL voici ma question : dc> Je souhaiterais passer en parametre d'une fonction function_tata dc> plusieurs arguments (dont plusieurs tableaux) comme suit : 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). 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/>. Si tu persistes, voilà comment faire: $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'}. Et dire que des gens m'ont dit que l'exposé sur Scheme était compliqué! -- Nail [X] here for new monitor _______________________________________________________________________ Le CULTe sur le ouebe: http://savage.iut-blagnac.fr/