use Net::Domain qw(hostfqdn); sub trim_addr { # Get the host domain my $sbHostname=hostfqdn(); my @addrs=@_; my ($sbHost, $sbSubdomain, $sbDomain)= ($sbHostname=~/^([^.]+\.((?:[^.]+\.)?([^.]+\.[^.]+)))$/); unless ($sbDomain) { die "Could not obtain the local domain from hostname '$sbHostname'\n"; } $sbSubdomain=$sbDomain unless $sbSubdomain; ($sub=$sbSubdomain)=~s/\.?$sbDomain$//; ($host=$sbHost)=~s/\.?$sbSubdomain//; foreach (@addrs) { s/[@]$sbHost// || s/[@.]$sbSubdomain$// || s/[.]$sbDomain$// || s/[@.]$sub$// || s/[@]$host$// ; } return @addrs; }