From 3178cc0a395f35acc6c400bfd1895aaeb741b8aa Mon Sep 17 00:00:00 2001 From: Dominik Csapak Date: Thu, 8 Aug 2019 10:49:13 +0200 Subject: [PATCH] Who: Domain: improve speed a split is about 20% faster than doing a regex match here, for a typical email address and domain (benchmarked with Benchmark::cmpthese) Signed-off-by: Dominik Csapak Tested-by: Stoiko Ivanov --- src/PMG/RuleDB/Domain.pm | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/PMG/RuleDB/Domain.pm b/src/PMG/RuleDB/Domain.pm index c3530ea..9d60473 100644 --- a/src/PMG/RuleDB/Domain.pm +++ b/src/PMG/RuleDB/Domain.pm @@ -31,11 +31,12 @@ sub new { sub who_match { my ($self, $addr) = @_; - $addr =~ m/^.+@(.+)$/; + my @parts = split('@', $addr); - return undef if !defined($1); + return undef if scalar(@parts) < 2; - return (lc ($1) eq lc ($self->address)); + my $domain = $parts[-1]; # last element + return lc $domain eq lc $self->{address}; } sub short_desc { -- 2.39.2