Current Perl documentation can be found at perldoc.perl.org.
Here is our local, out-dated (pre-5.6) version:
The normal way to find your own hostname is to call the
program. While sometimes expedient, this has some problems, such as not
knowing whether you've got the canonical name or not. It's one of those
tradeoffs of convenience versus portability.
The Sys::Hostname module (part of the standard perl distribution) will give you the hostname after which you can find out the
IP address (assuming you have working
DNS) with a
use Socket; use Sys::Hostname; my $host = hostname(); my $addr = inet_ntoa(scalar(gethostbyname($name)) || 'localhost');
Probably the simplest way to learn your DNS domain name is to grok it out of /etc/resolv.conf, at least under Unix. Of course, this assumes several things about your resolv.conf configuration, including that it exists.
(We still need a good DNS domain name-learning method for non-Unix systems.)