Первый файл
Имя: Фамилия: Местоположение: Страна: ID
Имя1: Фамилия1: Местоположение1: Страна1: ID1
Имя2: Фамилия2: Местоположение2: Страна2: ID2
Имя_3: Фамилия3: Местоположение3: Страна3: ID3
Имя_4: Фамилия4: Местоположение4: Страна4: ID4
Второй файл
Имя: Фамилия: Расположение:Страна: Old_ID
FirstName2: LastName2: Location2: Страна2: Old_ID2
FirstName4: LastName4: Location4: Country4: Old_ID4
Необходимо сравнить первый и второй файл и напечатать соответствующие строкис данными из первого файла, которые имеют новые идентификаторы.
Ниже скрипт извлекает мне Old_ID из второго файла, а не новые из первого файла
use warnings;
use strict;
my $details = 'file2.txt';
my $old_details = 'file1.txt';
my %names;
open my $data, '<', $details or die $!;
while (<$data>)
{
my ($name, @ids) = split;
push @{ $names{$_} }, $name for @ids;
}
open my $old_data, '<', $old_details or die $!;
while (<$old_data>)
{
chomp;
print @{ $names{$_} // [$_] }, "\n";
}
Вывод:
Имя: Фамилия: Местоположение: Страна: Old_ID
Имя_2: Фамилия2: Местоположение2: Страна2: Old_ID2
Имя_4: Фамилия4: Местоположение 4: Страна4: Old_ID4
Ожидаемый результат:
Имя: Фамилия: Местоположение: Страна: ID
Имя_2: Фамилия2: Местоположение2: Страна2: ID2
Имя_4: Фамилия4: Местоположение4: Страна4: ID4