tableau en perl

tableau en perl - Perl - Programmation

Marsh Posté le 06-11-2006 à 18:38:41    

je ne connais absolument rien en perl ... j'ai lu la doc sans succes et pourtant je veux faire un truc qui me parait vraiment simple ( pas besoin de me dire va voire la >> google ou autre)  
 
comment faire un :  
en php
<? foreach ($tableau as $key => $val ) {
echo $key.$val;
}
?>
 
en pearl?
 
mon tableau c'est ca :  
 
my $liste_pays_en_1 = {        
  'France'=>'France',
  'Etats-Unis'=>'United States',
  'Grande Bretagne'=>'United Kingdom',                            
  'Japon'=>'Japan',
  'Belgique'=>'Belgium',
  'Suisse'=>'Switzerland'
  };
 
 
encore mieux... apres je veux trier  par rapport a la valeur (pays en anglais) ce tableau pour avoir un affichage  
du type  
                         'Belgique'=>'Belgium',
  'France'=>'France',
  'Japon'=>'Japan',
  'Suisse'=>'Switzerland'
  'Grande Bretagne'=>'United Kingdom',                            
  'Etats-Unis'=>'United States',
 
alors la autant dire que la fonction sort (j'ai eu beau la retourner dans tout les sens je n'y arrive pas )  avec une tentative du genre  
foreach my $variable ( sort values %$liste_pays_en_1 ) {
}
 
mais il me garde que les pays anglais (bien trier certe..)
 
Aidez moi svp
 
 

Reply

Marsh Posté le 06-11-2006 à 18:38:41   

Reply

Marsh Posté le 07-11-2006 à 04:06:57    

Ton truc c'est pas un tableau, c'est un hash. Ou plus exactement, $liste_pays_en_1 est la référence d'un hash annonyme. Enfin bref, l'idée c'est de fournir ta propre routine sort() qui va trier sur les valeurs :
 

#!/usr/bin/perl -w
 
use strict;
 
my $en = {
        'France'=>'France',
        'Etats-Unis'=>'United States',
        'Grande Bretagne'=>'United Kingdom',
        'Japon'=>'Japan',
        'Belgique'=>'Belgium',
        'Suisse'=>'Switzerland'
};
 
foreach my $fr (sort {$en->{$a} cmp $en->{$b}} keys %$en) {
        print "'$fr' => '$en->{$fr}',\n"
}


Message édité par matafan le 07-11-2006 à 04:07:21
Reply

Marsh Posté le 07-11-2006 à 12:25:26    

parfait c'est exactement ca... merci beaucoup!  
 
en gros il faut que je comprenne ce que c'est qu'un hash par rapport a un tableau ! je vais faire des recherches.

Reply

Marsh Posté le 09-11-2006 à 14:56:52    

Une table de hachage est indexée par des chaines de caractères ('toto', 'titi', 'tata', ...), un tableau par des nombres (0, 1, 2, ...).
Voilà en gros pour la différence.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed