我想知道是否有一个 Perl 模块可以检测两个 URL 是否属于同一个根域,例如http://services.bestbuy.com/
,http://espanol.bestbuy.com/
它们都将被视为具有相同的根域。
我知道使用正则表达式是可能的,但如果已经有一个模块可以做到这一点,我会更喜欢它!我还没有找到任何东西。
有谁知道任何好的解决方案?谢谢!
我会使用Domain::PublicSuffix。
use feature qw( say state );
use Domain::PublicSuffix qw( );
use URI qw( );
# Accepts urls as strings and as URI objects.
sub url_root_domain {
my ($abs_url) = @_;
state $parser = Domain::PublicSuffix->new();
return $parser->get_root_domain( URI->new($abs_url)->host );
}
my $url1 = 'http://services.bestbuy.com/';
my $url2 = 'http://espanol.bestbuy.com/';
say url_root_domain($url1) eq url_root_domain($url2) ? "same" : "diff";