2010-07-29 5 views
0
my %geo_location_map = (
          US => [ 'US', 'CA' ], 
          EU => [ 'GB', 'ES' ], 

          ); 
    $location= "US" ; 
    my $goahead = 0; 

    if (exists $geo_location_map{US}) { 
    print "exists"; 
     my @glocation = $geo_location_map{US}; 

    foreach @glocation { 
     if ($_ eq "$location"} { $goahead=1; last;} 
     } 
    } 

J'ai essayé sa ne fonctionne pasComment résoudre le problème de hachage du tableau

+0

S'il vous plaît être plus précis sur ce qui "ne fonctionne pas". Qu'est-ce qui se passe, par rapport à ce que vous voulez avoir? Aussi, vous devez * toujours * 'utiliser strict; utiliser des avertissements; 'dans vos scripts, si vous souhaitez avoir des erreurs de rapport perl à vous. – Ether

Répondre

4

$geo_location_map{US} contient une référence de tableau; si vous voulez copier le tableau à @glocation vous devez déréférencer:

my @glocation = @{$geo_location_map{US}}; 
1

Tout d'abord, toujours « use strict » dans vos scripts. Vous avez eu plusieurs erreurs. voir:


my %geo_location_map = (
    US => [ 'US', 'CA' ], 
    EU => [ 'GB', 'ES' ], 
); 
my $location= "US" ; 
my $goahead = 0; 

if (exists $geo_location_map{US}) { 
    print "exists"; 
    my @glocation = $geo_location_map{US}; 

    foreach (@glocation) { 

     if ($_->[0] eq "$location") { 
      print "ahead\n"; 
         $goahead=1; 
      last; 
     } 
    } 
} 



Comme l'a dit Jim Davis, vous avez eu référence à un tableau ann. En outre, quelques erreurs de support, pas de problème

Questions connexes