donc dans mon tableau temporaire : $tab[0] vaut 0,5 et $tab[1] vaut 2
en résumé, existe-t-il une fonction (ou autre ) permettant d'avoir un tableau de valeur distinct ?
merci par avance
Bonjour,
Si vous souhaitez extraire toutes les valeurs (dont les redondances possibles), il existe la fonction '@ARRAY = values(%HASH)'.
Si vous souhaitez constituer un tableau de valeurs uniques, il faut la construire ou compléter la fonction 'values'
Par exemple:
my $tarifs = {...};
my @tarifs = values %$tarifs;
# Remplissage d'un HASH pour obtenir les tarifs uniques. my %tarifs_uniques; foreach my $tarif (@tarifs) { $tarifs_uniques{$tarif} = 1; };
my @tarifs_uniques_non_ordonnes = keys %tarifs_uniques; my @tarifs_uniques_croissants = sort keys %tarifs_uniques;
Klaus Eichner
"Nicolas George" <nicolas$ wrote in message news:dc60oo$2c6h$
"Klaus Eichner" wrote in message <42e6849e$0$12906$:
$tarif = { 'pain' =>0,5 ^^^^^^^
il faut remplacer $tarif par %tarif
Euh, non, pas tel quel : { ... } construit une référence sur un hash anonyme.
Je n'ai pas vu la construction d'une référence à une table de hachage, (voir aussi http://perl.enstimac.fr/DocFr/perlreftut.html#construire%20des%20références )
Merci pour la correction.
-- Klaus
"Nicolas George" <nicolas$george@salle-s.org> wrote in message
news:dc60oo$2c6h$1@biggoron.nerim.net...
"Klaus Eichner" wrote in message
<42e6849e$0$12906$626a14ce@news.free.fr>:
$tarif = { 'pain' =>0,5
^^^^^^^
il faut remplacer $tarif par %tarif
Euh, non, pas tel quel : { ... } construit une référence sur un hash
anonyme.
Je n'ai pas vu la construction d'une référence à une table de hachage,
(voir aussi
http://perl.enstimac.fr/DocFr/perlreftut.html#construire%20des%20références )
"Nicolas George" <nicolas$ wrote in message news:dc60oo$2c6h$
"Klaus Eichner" wrote in message <42e6849e$0$12906$:
$tarif = { 'pain' =>0,5 ^^^^^^^
il faut remplacer $tarif par %tarif
Euh, non, pas tel quel : { ... } construit une référence sur un hash anonyme.
Je n'ai pas vu la construction d'une référence à une table de hachage, (voir aussi http://perl.enstimac.fr/DocFr/perlreftut.html#construire%20des%20références )
Merci pour la correction.
-- Klaus
shivaaz
en résumé, existe-t-il une fonction (ou autre ) permettant d'avoir un tableau de valeur distinct ?
@tab=values %tab ;
-- on passe la moitié de son temps à refaire ce que l'on n'a pas eu le temps de faire correctement. Loi de Myers.
Merci à tous pour vos réponses
en résumé, existe-t-il une fonction (ou autre ) permettant d'avoir un
tableau de valeur distinct ?
@tab=values %tab ;
--
on passe la moitié de son temps à refaire ce que l'on n'a pas eu le
temps de faire correctement.
Loi de Myers.
donc dans mon tableau temporaire : $tab[0] vaut 0,5 et $tab[1] vaut 2
en résumé, existe-t-il une fonction (ou autre ) permettant d'avoir un tableau de valeur distinct ?
Le mot 'distinct' devrait immédiatement vous inciter à utiliser une table de hachage.
Donc :
my @tab; { my %valeurs_uniques; foreach my $val (values %$tarif) { $valeurs_uniques{$val}++; } # le 'sort' est là pour avoir les valeurs dans l'ordre. @tab = sort keys %valeurs_uniques; }
PS: lorsque vous publiez du code dans un message sur le forum, copiez du vrai code : ça m'étonnerait que votre version de perl utilise la virgule comme séparateur décimal ;-)
-- Paul Gaborit - <http://perso.enstimac.fr/~gaborit/> Perl en français - <http://perl.enstimac.fr/>
donc dans mon tableau temporaire : $tab[0] vaut 0,5 et $tab[1] vaut 2
en résumé, existe-t-il une fonction (ou autre ) permettant d'avoir un
tableau de valeur distinct ?
Le mot 'distinct' devrait immédiatement vous inciter à utiliser une
table de hachage.
Donc :
my @tab;
{
my %valeurs_uniques;
foreach my $val (values %$tarif) {
$valeurs_uniques{$val}++;
}
# le 'sort' est là pour avoir les valeurs dans l'ordre.
@tab = sort keys %valeurs_uniques;
}
PS: lorsque vous publiez du code dans un message sur le forum, copiez
du vrai code : ça m'étonnerait que votre version de perl utilise la
virgule comme séparateur décimal ;-)
--
Paul Gaborit - <http://perso.enstimac.fr/~gaborit/>
Perl en français - <http://perl.enstimac.fr/>
donc dans mon tableau temporaire : $tab[0] vaut 0,5 et $tab[1] vaut 2
en résumé, existe-t-il une fonction (ou autre ) permettant d'avoir un tableau de valeur distinct ?
Le mot 'distinct' devrait immédiatement vous inciter à utiliser une table de hachage.
Donc :
my @tab; { my %valeurs_uniques; foreach my $val (values %$tarif) { $valeurs_uniques{$val}++; } # le 'sort' est là pour avoir les valeurs dans l'ordre. @tab = sort keys %valeurs_uniques; }
PS: lorsque vous publiez du code dans un message sur le forum, copiez du vrai code : ça m'étonnerait que votre version de perl utilise la virgule comme séparateur décimal ;-)
-- Paul Gaborit - <http://perso.enstimac.fr/~gaborit/> Perl en français - <http://perl.enstimac.fr/>