Perl et imbrication de foreach
picocpge
-
picocpge -
picocpge -
Bonjour a tous,
voila, j'ai un petit probleme, en fait je dois imbriquer des foreach et ca ne marche pas.
lorsque je fais le programme ci dessous ca fonctionne :
@t2=(1,2,3);
@t3=(1,2);
foreach my $f (@t2){
foreach my $g (@t3){
print "$f,$g\n";
}
}
mais dans mon cas les tableaux ne sont pas definis en "dur" et ca ne fonctionne pas :
foreach my $f (@t1){
foreach my $g (@t2){
foreach my $h (@t3){
foreach my $k (@t4){
foreach my $l (@t5){
print SCRIPT "$f,$g,$h,$k,$l\n";
}
}
}
}
}
mes cinq tableaux sont definis precedemment dans des boucles et lorsque j'entre dans le premier foreach ca fonctionne mais il ne rentre pas dans le second foreach car il ne connait plus @t2 donc je me demande pkoi ???
Merci d'avance pour votre aide
voila, j'ai un petit probleme, en fait je dois imbriquer des foreach et ca ne marche pas.
lorsque je fais le programme ci dessous ca fonctionne :
@t2=(1,2,3);
@t3=(1,2);
foreach my $f (@t2){
foreach my $g (@t3){
print "$f,$g\n";
}
}
mais dans mon cas les tableaux ne sont pas definis en "dur" et ca ne fonctionne pas :
foreach my $f (@t1){
foreach my $g (@t2){
foreach my $h (@t3){
foreach my $k (@t4){
foreach my $l (@t5){
print SCRIPT "$f,$g,$h,$k,$l\n";
}
}
}
}
}
mes cinq tableaux sont definis precedemment dans des boucles et lorsque j'entre dans le premier foreach ca fonctionne mais il ne rentre pas dans le second foreach car il ne connait plus @t2 donc je me demande pkoi ???
Merci d'avance pour votre aide
A voir également:
- Perl et imbrication de foreach
- Denon perl pro test - Accueil - Audio
- Active perl - Télécharger - Édition & Programmation
- Logiciel imbrication tole gratuit - Télécharger - Outils professionnels
- Si et ou excel imbriqué - Guide
- Imbrication RechercheV/H - Forum Excel
2 réponses
Salut,
essaie plutôt
essaie plutôt
my (@t1,@t2,@t3,@t4,@t5); my ($f,$g,$h,$k,$l); foreach $f (@t1){ foreach $g (@t2){ foreach $h (@t3){ foreach $k (@t4){ foreach $l (@t5){ print SCRIPT "$f,$g,$h,$k,$l\n"; } } } } }
my @t1;
my @t2;
my @t3;
my @t4;
my @t5;
my @t6;
my @t7;
my $a;
for my $j(1..7){
if($variable_name[$i] =~ "par$j"){
$variable_name[$i] = $variable_value[$i];
if ($variable_name[$i] !~ "NA"){
if ($j==1){
@t1 = split(',', $variable_name[$i]);
$a=1;
}
else{
if ($j==2){
@t2 = split(',', $variable_name[$i]);
$a = 2;
}
else{
if ($j==3){
@t3 = split(',', $variable_name[$i]);
$a=3; }
else{
if ($j==4){
@t4 = split(',', $variable_name[$i]);
$a=4;
}
else{
if ($j==5){
@t5 = split(',', $variable_name[$i]);
$a=5;
}
else{
if ($j==6){
@t6 = split(',', $variable_name[$i]);
$a=6;
}
else{
if ($j==7){
@t7 = split(',', $variable_name[$i]);
$a=7;
}
}
}
}
}
}
}
}}}
#if($a==7){
#foreach my $f (@t1){
# foreach my $g (@t2){
# foreach my $h (@t3){
# foreach my $k (@t4){
# foreach my $l (@t5){
# foreach my $m (@t6){
# foreach my $n (@t7){
# print SCRIPT "AT+CGQREQ=$f,$g,$h,$k,$l,$m,$n\n";
# }
# }
# }
# }
# }
# }
# }
# }
#else{
# if($a==6){
# foreach my $f (@t1){
# foreach my $g (@t2){
# foreach my $h (@t3){
# foreach my $k (@t4){
# foreach my $l (@t5){
# foreach my $m (@t6){
# print SCRIPT "AT+CGQREQ=$f,$g,$h,$k,$l,$m\n";
# }
# }
# }
# }
# }
# }
# }
# else{
# if($a==5){
my ($f,$g,$h,$k,$l);
foreach $f (@t1){
foreach $g (@t2){
foreach $h (@t3){
foreach $k (@t4){
foreach $l (@t5){
print "AT+CGQREQ=$f,$g,$h,$k,$l\n";
}
}
}
}
}
# }
# }
# }
}
}
}
my @t2;
my @t3;
my @t4;
my @t5;
my @t6;
my @t7;
my $a;
for my $j(1..7){
if($variable_name[$i] =~ "par$j"){
$variable_name[$i] = $variable_value[$i];
if ($variable_name[$i] !~ "NA"){
if ($j==1){
@t1 = split(',', $variable_name[$i]);
$a=1;
}
else{
if ($j==2){
@t2 = split(',', $variable_name[$i]);
$a = 2;
}
else{
if ($j==3){
@t3 = split(',', $variable_name[$i]);
$a=3; }
else{
if ($j==4){
@t4 = split(',', $variable_name[$i]);
$a=4;
}
else{
if ($j==5){
@t5 = split(',', $variable_name[$i]);
$a=5;
}
else{
if ($j==6){
@t6 = split(',', $variable_name[$i]);
$a=6;
}
else{
if ($j==7){
@t7 = split(',', $variable_name[$i]);
$a=7;
}
}
}
}
}
}
}
}}}
#if($a==7){
#foreach my $f (@t1){
# foreach my $g (@t2){
# foreach my $h (@t3){
# foreach my $k (@t4){
# foreach my $l (@t5){
# foreach my $m (@t6){
# foreach my $n (@t7){
# print SCRIPT "AT+CGQREQ=$f,$g,$h,$k,$l,$m,$n\n";
# }
# }
# }
# }
# }
# }
# }
# }
#else{
# if($a==6){
# foreach my $f (@t1){
# foreach my $g (@t2){
# foreach my $h (@t3){
# foreach my $k (@t4){
# foreach my $l (@t5){
# foreach my $m (@t6){
# print SCRIPT "AT+CGQREQ=$f,$g,$h,$k,$l,$m\n";
# }
# }
# }
# }
# }
# }
# }
# else{
# if($a==5){
my ($f,$g,$h,$k,$l);
foreach $f (@t1){
foreach $g (@t2){
foreach $h (@t3){
foreach $k (@t4){
foreach $l (@t5){
print "AT+CGQREQ=$f,$g,$h,$k,$l\n";
}
}
}
}
}
# }
# }
# }
}
}
}
mais je suis assez d'accord avec toi car je pense aussi que mes foreach ne fonctionne pas a cause de la maniere dont je definis mes tableaux.
Pourtant avant de rentrer dans mes foreach lorsque je mets print "@t1"; mon tableau s'affiche correctement et ca pareil pour tout mes tableaux... c bizarre pkoi ils ne fonctionnent plus une fois rentrer dans les foreach
c juste qu il ne reconnait pas mon @t2 pour entrer dans le second foreach et donc le programme sort des boucles sans rien faire