我有两个来自两个不同服务器的文件。在这两个文件中介绍了一些足球队的比赛。如您所知,足球队可以用不同的名字来称呼。
我想实现一个可以在两个文件中识别相同足球比赛的代码,以便从一个文件中获取相同的变量,并从另一个文件中获取其他变量。
例如在一个文件中,我有一个匹配项

Derry City - Bray Wanderers


在另一个文件中,我具有称为

Derry City - Bray


我怎样才能做到这一点?
我没有想法。

最佳答案

非常简单的脚本来替换团队的别名。您需要自己用别名填充它,我做了一些。如果您有多个游戏,只要所有别名都交换为全名,则哈希将覆盖现有游戏。

#!/usr/bin/perl
use strict;
use warnings;

my %games;
while (<DATA>) {
    chomp;
    my ($home, $guest) = split /\s*-\s*/, $_, 2;
    $home  = get_name($home);
    $guest = get_name($guest);
    $games{"$home - $guest"} = 1;
}

sub get_name {
# Return the full name for the team, if it exists, otherwise return the original
    my %alias = (
        'Derry'     => 'Derry City',
        'Brawlers'  => 'Beijing',
        'Dolphins'  => 'Miami',
        'Bray'      => 'Bray Wanderers',
    );
    return $alias{$_[0]} // $_[0];
}

use Data::Dumper;
print Dumper \%games;

__DATA__
Derry City - Bray Wanderers
Derry City - Bray
Brawlers - Dolphins
Beijing - Miami
Miami - Beijing

10-08 08:23