Mixer un tableau [PERL] - Perl - Programmation
Marsh Posté le 26-07-2012 à 14:17:02
Si j'ai bien compris, tu as au départ un tableau perl, dont chacune des entrées est un tableau à deux éléments?
Alors ceci devrait le faire:
Code :
|
ou @a est ton tableau initial
A+,
Marsh Posté le 26-07-2012 à 14:36:44
Salut Gilou,
Décidément c'est toi le champion du PERL ici :-)
@a est juste un tableau pas un hash. 1 seule entrée par ligne.
Voila comment je peuple le tableau @a via un autre tableau @Untableau en ne conservant que les entrées qui contiennent un certain pattern (ici "PATTERN" )
foreach (@Untableau){
if ($_ =~ /"PATTERN"/) {
@temp= split(/,/,$_);
$a[$i]=$temp[0].",".$temp[2];
chomp($a[$i]);
print $a[$i]."\n";
$i++;
}
}
Merci encore pour ta réponse.
Marsh Posté le 26-07-2012 à 15:15:56
Si tu n'as qu'un tableau contenant du texte, alors c'est simple:
Code :
|
A+,
Marsh Posté le 26-07-2012 à 15:26:40
Gilou,
Merci c'est exactement le résultat que je voulais obtenir.
Donc si j'ai bien compris pour le premier bout de code que tu m'as fournis c'est pour les hash?
Marsh Posté le 26-07-2012 à 18:17:24
Le premier bout de code, c'est pour un tableau dont chaque ligne est un tableau avec deux champs.
A+,
Marsh Posté le 26-07-2012 à 12:16:36
Bonjour,
J'ai un petit problème avec un tableau(liste). Je dois mixer les entrées entre elles. Voici le tableau à l'origine
entre 0 ="FOO","1"
entre 1 ="FOO","2"
entre 2 ="FOO","3"
entre 3 ="FOO","4"
entre 4 ="FOO","5"
entre 5 ="BAR","a"
entre 6 ="BAR","b"
entre 7 ="BAR","c"
entre 8 ="BAR","d"
entre 9 ="BAR","e"
Le but de jeu c'est l'entrée 0 de ce tableau = l'entrée 0 + entre 5 ... puis l'entrée 1 + entre 6 et ainsi de suite jusqu'a l'entrée 4 puis l'entrée 5 qui devra prendre les valeur de l'entree 5 + entre 0 ...
Au final j'essaye d'obtenir ceci
entre 0 ="FOO","1","BAR","a"
entre 1 ="FOO","2","BAR","b"
entre 2 ="FOO","3","BAR","c"
entre 3 ="FOO","4","BAR","d"
entre 4 ="FOO","5","BAR","e"
entre 5 ="BAR","a","FOO","1"
entre 6 ="BAR","b","FOO","2"
entre 7 ="BAR","c","FOO","3"
entre 8 ="BAR","d","FOO","4"
entre 9 ="BAR","e","FOO","5"
J'ai essayé plein de chose, le meilleur résultat que j'ai obtenu c'est que les 5 premières entrées étaient correct après j'avais des résultats vraiment étrange.
Si quelqu'un à déjà eu cela à faire et qu'il a une solution, je suis preneur.
Merci pour votre aide
Grulles