首先,如果有人问过这个问题,我想道歉。如果不知道如何计算散列引用数组,就很难找到答案
我的函数接收来自 DBI 查询的输出,这是一个包含电子邮件地址的哈希引用数组。任务是按域名保存电子邮件地址的每日计数。我所做的是建立一个域的哈希来计数。关键是该数组预计将存储至少 10,000,000 封电子邮件。该脚本需要几分钟才能运行。
问题是,你能想出一种方法来简化算法吗?
my ($data) = shift;
my %elements = ( );
foreach my $row (@$data)
{
my ($username, $domain) = split(/@/, $row->{addr});
if (exists($elements{$domain}))
{
$elements{$domain}++;
}
else
{
$elements{$domain} = 1;
}
}
顺便说一句,我对我的英语感到抱歉,但我不是母语人士。谢谢。