construire un hash pour chaque ligne - Perl - Programmation
Marsh Posté le 08-05-2014 à 11:28:30
Je comprends rien à rien à ce que vous faites.
Si vous faites
my ($numero, @liste1, @liste2) = @_;
vous déclarez des variables locales à la procédure
quand vous faites
print "cpt($numero,@liste1,@liste2)\n";
les variables sont en dehors de la procédure, donc ça marchera pas.
Autres trucs qui sont manifestement pas bons:
1) my ($numero, @liste1, @liste2) = @_;
on ne peut avoir qu'une seule liste (en dernier) pour récupérer les valeurs de @_
Ici, obligatoirement, @liste2 sera vide, puisque toutes les valeurs de @_ sauf la première auront été passées à @liste1
2) print "cpt($numero,@liste1,@liste2)\n";
En plus de la remarque du début, comme cpt retourne un array, ce n'est surement pas print qu'il faut employer pour lister son contenu
3) $numero = keys(%cpts); et (@liste1,@liste2)= values(%cpts);
je ne sais pas ce que vous voulez faire, mais c'est surement pas ça
$numero = keys(%cpts); va coller l'adresse de la liste keys(%cpts); (qui vu votre code ne peut être que vide) dans la variable $numero (ce qui entre autres est susceptible de mettre le souk dans la boucle foreach)
4) foreach ($numero)
Si $numero est un scalaire, on ne voit pas trop a quoi sert de faire un foreach dessus.
Bref, il n'y a pratiquement rien de correct dans vos lignes.
Expliquez moi clairement par l'exemple ce que vous avez en entrée comme paramètres et ce que vous voulez obtenir en sortie.
A+,
Marsh Posté le 08-05-2014 à 10:00:38
Bonjour,
Je bute depuis 2 jours sur un petit problème et j'arrive pas à trouver la solution.
j'ai un programme qui lit la donnée entrée entrée au clavier et je récupère en sortie les argument de la fonction suivante:
sub cpt {
my ($numero, @liste1, @liste2) = @_;
my %cpts;
foreach ($numero){
$numero = keys(%cpts);
(@liste1,@liste2)= values(%cpts);
}
return %cpts;
}
print "cpt($numero,@liste1,@liste2)\n";
cette dernière ne me permet de récupérer que les paramètre de la ligne en cours; alors que je voudrais avoir toutes les lignes précédentes dans un hash.
c'est surement bête mais ça me bloque pour la suite .
aidez moi s'il vous plait