Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3045 connectés 

  FORUM HardWare.fr
  Programmation
  Perl

  [PERL] Passage de plusieurs array en paramêtre à une fonction

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[PERL] Passage de plusieurs array en paramêtre à une fonction

n°583420
burgergold
5$? va chez l'diable!
Posté le 04-12-2003 à 23:02:36  profilanswer
 

une simple variable c'est facile
 

Code :
  1. maFonction($var1);
  2. sub maFonction {
  3.    my $var = shift;
  4. }


 
plusieurs variable aussi
 

Code :
  1. maFonction($var1, $var2, $var3);
  2. sub maFonction {
  3.    my $var1 = shift;
  4.    my $var2 = shift;
  5.    my $var3 = shift;
  6. }


 
variables et 1 array c'est simple
 

Code :
  1. maFonction($var1, $var2, @array1);
  2. sub maFonction {
  3.    my $var1 = shift;
  4.    my $var2 = shift;
  5.    my @array = @_;
  6. }


 
mais pour 2 array?!? comment on fait
 

Code :
  1. maFonction(@array1, @array2);
  2. sub maFonction {
  3.    ???
  4. }


Message édité par burgergold le 04-12-2003 à 23:02:54

---------------
http://www.boincstats.com/signature/user_664861.gif
mood
Publicité
Posté le 04-12-2003 à 23:02:36  profilanswer
 

n°583507
matafan
Posté le 05-12-2003 à 02:34:21  profilanswer
 

La seule solution est de les passer par référence :

#!/usr/bin/perl -w
 
use strict;
 
sub func(\@\@) {
        my ($a1, $a2) = @_;
        print "Array #1: (" . join(", ", @$a1) . " )\n";
        print "Array #2: (" . join(", ", @$a2) . " )\n";
}
 
my @a = (1, 2, 3);
my @b = (4, 5, 6);
 
func(@a, @b);


 
Mais évidemment, si tu modifies les tableaux dans ta fonction ça les modifies aussi dans la fonction appelante. Enfin c'est du passage par référence, quoi...


Message édité par matafan le 05-12-2003 à 02:39:06
n°583509
matafan
Posté le 05-12-2003 à 02:36:30  profilanswer
 

Et si tu n'aimes pas les prototypes (mais les prototypes c'est bien), ça revient à faire :

#!/usr/bin/perl -w
 
use strict;
 
sub func {
        my ($a1, $a2) = @_;
        print "Array #1: (" . join(", ", @$a1) . " )\n";
        print "Array #2: (" . join(", ", @$a2) . " )\n";
}
 
my @a = (1, 2, 3);
my @b = (4, 5, 6);
 
func(\@a, \@b);


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Perl

  [PERL] Passage de plusieurs array en paramêtre à une fonction

 

Sujets relatifs
[ASP.NET] affiche le resultat sur plusieurs lignes[C] possible de passer une union en parametre a une fonction ?
[CMD] Saisie de parametre par l'utilisateur ?problème de création de fonction avec postgresql 7.3.4
[PERL] Debugger Perl[java] probleme avec un passage d'argument...
Passage MySql à fichier SYLK (compatible excel) et inverse (PHP)[PHP] Fonction permettant de télécharger un fichier....
[VB]Passage de DAO+Jet à DAO+ODBCDirect 
Plus de sujets relatifs à : [PERL] Passage de plusieurs array en paramêtre à une fonction


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR