my @atom = split /\./, $host; if ( length($atom[-1]) == 3 ) { # gTLD $domain = join( '.', @atom[-2,-1] ); } elsif ( length($atom[-1]) == 2 ) { # ccTLD # Check if ccTLD domains are name.x.tld or # name.tld style. This is /NOT/ 100% accurate! $domain = join '.' => $atom[-2] =~ /^(?:com?|net|org|ac|edu)$/ ? @atom[-3,-2,-1] : @atom[-2,-1]; } else { warn("Couldn't extract gTLD/ccTLD from $host\n"); $domain = undef; }