我有两个字符串数据类型数组,我正在比较那些使用foreach循环并在找到匹配时提高计数器
my @array1 = ('India');
my @array2 = ('India', 'America');
foreach my $a (@array1) {
foreach my $b (@array2) {
my $count=0;
if($a eq $b) {
$count++;
}
}
}
现在我想在其范围之外使用这个count变量
if ($count > 0) {
call_some_function();
}
我哪里错了?
答案 0 :(得分:3)
$count
被声明到foreach
循环中,它在此循环之外不存在,如果您想在循环外使用$count
,只需将my $count=0
放在此之前第一个foreach
并将其删除到foreach
这是你想要的:
my @array1=('India');
my @array2=('India','America');
my $count=0;
foreach my $country1(@array1)
{
foreach my $country2(@array2)
{
if($country1 eq $country2)
{
$count++;
}
}
}
答案 1 :(得分:0)
在循环之外声明变量,你还得到$ count中的拼写错误:
my $count = 0;
foreach $a (@array1) {
foreach $b (@array2) {
if ( $a eq $b ) {
$count++;
}
}
}