use CGI's methods server_name or virtual_host
That's a start, but unfortunately not enough: it misses the protocol and port. I think it's better to use CGI.pm's url function/method. For example, also demonstrating URI:
#!/usr/bin/env perl
use warnings;
use strict;
use CGI qw/:standard/;
use URI;
print header("text/plain");
print server_name(), "\n";
print virtual_host(), "\n";
print url(), "\n";
my $url = URI->new( url( -base => 1 ) )->canonical;
$url->path( '/some/new/path' );
print "$url\n";
Would output, for example:
www.example.com
www.example.com
http://www.example.com:8080/cgi-bin/test.cgi
http://www.example.com:8080/some/new/path
|