Определение blank здесь необходимо уточнить.Это пустая строка?undef
значение?Пробелы?
Я предполагаю, что любой элемент без непробельных символов, например, blank в примере ниже, показывает, как это можно сделать с помощью конструкции each @array
:
use strict;
use warnings;
my @a = ( 'A', 'B', 'C', 'D', 'E', ' ', ' ' ); # Can't use qw/ / 'cos
my @b = ( ' ', 'B', 'C', ' ', ' ', ' ', 'A' ); # it ignores whitespace
my %count; # Store results in a hash
while ( my ( $index, $value ) = each @a ) { # Loop over index & value together
my $otherValue = $b[$index]; # Get the other value in @b
next unless $value =~ /\S/ and $otherValue =~ /\S/; # Skip if 'blank'
$count{$value}++ if $value eq $otherValue; # Increment counter for that value
}
print "$_ : $count{$_}\n" for keys %count; # B : 1
# C : 1
# Find out total
use List::Util 'sum'; # No need to reinvent wheel
print "Sum : ", sum ( values %count ), "\n"; # Sum : 2