- Создать список всех символов в файле1
- Пройдите через файл2. Если критерии соответствуют, удалите символ из списка.
В этом случае я бы посоветовал вам использовать ключи хеша для хранения этого списка ($symbols{$symbol} = 1;
). Это потому, что это легко и дешево удалить из хеша (delete $symbols{$symbol};
).
Спойлер:
use strict;
use warnings;
use feature qw( say );
my %symbols;
{
open(my $fh, '<', 'file1')
or die("Can't open file1: $!\n");
while (<$fh>) {
chomp;
++$symbols{$_};
}
}
{
open(my $fh, '<', 'file2')
or die("Can't open file2: $!\n");
while (<$fh>) {
chomp;
my ($key, $val) = split /=/;
my ($dept, $co) = split /[_\.]/, $key;
if ($co eq 'companyA' || $dept eq 'departmentB' || 'departmentC') {
my @symbols = split ' ', $val;
delete @symbols{@symbols};
}
}
}
say for keys %symbols;