Salut,
Jusqu'à présent je pensais avoir compris le passage de tableau en paramètre mais je suis tombé sur un os.
En fait, la même fonction, fonctionne ou non, selon qu'elle est dans le même module que la fonction appelante.
Exemple qui marche :
programme : exec.pl
#!/usr/bin/perl
use strict;
my @data_file;
push(@data_file,'item1');
push(@data_file,'item2');
push(@data_file,'item3');
test(\@data_file);
sub test {
my ($data_file)=@_;
foreach my $liste (@data_file) {
print "$liste \n" ;
}
return 0;
}
Exemple qui en marche pas ;o(
programme : exec.pl
#!/usr/bin/perl
use strict;
require ("module.pl");
my @data_file;
push(@data_file,'item1');
push(@data_file,'item2');
push(@data_file,'item3');
&module::test(\@data_file);
}
programme : module.pl
#!/usr/bin/perl
use strict;
package module;
sub test() {
my ($data_file) = @_;
foreach my $liste (@data_file) {
print "$liste \n" ;
}
return 0;
}
1;
Là, j'ai droit à un super : Global symbol "@tab" requires explicit package name at module.pl
Donc je pense que je passe mal le tableau mais je ne vois pas, donc si quelqu'un avait une idée.
Merci.
Poste le Tuesday 12 September 2006 22:33:05