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;}
}
}
我试过它不能正常工作
答案 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;
}
}
}
正如吉姆戴维斯所说,你有阵列参考。 而且,一些括号错误,没什么大不了的。