IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Perl Discussion :

Petite aide sur la comprehension d'un code


Sujet :

Langage Perl

  1. #1
    Membre à l'essai
    Inscrit en
    Décembre 2006
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 24
    Points : 24
    Points
    24
    Par défaut Petite aide sur la comprehension d'un code
    Voila je ne comprends pas ce que le code suivant veut dire:

    for (sort {$a <=> $b} keys %data) {
    ...}

    est ce que qqun peut m'aider?

    Merci.

  2. #2
    Expert éminent
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Points : 8 586
    Points
    8 586
    Par défaut
    Alors...
    sort() est la fonction de tri de Perl, si tu lui donnes simplement un tableau en paramètre, elle renvoie un tableau ayant le même contenu, mais trié alphabétiquement. Extrêmement rapide. On peut également lui passer en paramètre une fonction de comparaison. Un bloc où $a et $b sont les éléments à comparer.
    Par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    my @sorted = sort {$a <=> $b} (15, 13, 1, 30, 3);
    @sorted sera alors (1, 3, 13, 15, 30). (<=> est la fonction de comparaison numérique, c'est à dire que 1 <=> 4 renvoie une valeur positive (dans l'ordre), 1 <=> 1 une valeur nulle et 4 <=> 1 une valeur négative (pas dans l'ordre). Toute fonction de comparaison doit suivre les mêmes conventions)

    Mais qu'aurait donné :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    my @sorted = sort (15, 13, 1, 30, 3);
    Et bien @sorted aurait contenu (1, 13, 15, 3, 30), puisqu'il s'agit là de l'ordre alphabétique...

    Par ailleurs :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for (1, 2, 5, 6) { print "$_," };
    affiche : "1,2,5,6,"
    C'est à dire que $_ prend dans le corps de la boucle successivement toutes les valeurs de la liste.

    Donc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    for (sort {$a <=> $b} keys %data) {
    ...}
    effectue une itération sur toutes les clés du hash %data, dans l'ordre numérique croissant.

    --
    Jedaï

  3. #3
    Membre à l'essai
    Inscrit en
    Décembre 2006
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 24
    Points : 24
    Points
    24
    Par défaut
    Merci bcp.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. petite aide sur response.write
    Par xclear dans le forum ASP
    Réponses: 8
    Dernier message: 21/06/2006, 14h14
  2. [SQL Server] Une petite aide sur une requete
    Par irenee dans le forum Langage SQL
    Réponses: 9
    Dernier message: 24/04/2006, 16h08
  3. petite aide sur une requete INSERT INTO
    Par bonneti dans le forum Langage SQL
    Réponses: 3
    Dernier message: 14/03/2005, 15h17
  4. petite aide sur les transactions et triggers SVP
    Par CharleLéo dans le forum Débuter
    Réponses: 4
    Dernier message: 15/11/2004, 20h43
  5. Petite aide sur les triggers ?
    Par krimson dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 16/04/2004, 16h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo