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