如何解决数组哈希问题

时间:2010-07-29 14:58:36

标签: perl

  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;}  
        }
    }

我试过它不能正常工作

2 个答案:

答案 0 :(得分:4)

$geo_location_map{US}包含数组引用;如果要将数组复制到@glocation,则需要取消引用它:

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

答案 1 :(得分:1)

首先,在脚本中始终使用“strict strict”。 你有多个错误。 见:


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;
        }
    }
}



正如吉姆戴维斯所说,你有阵列参考。 而且,一些括号错误,没什么大不了的。