in reply to What am I doing wrong here?

Your Value for Location has ~zach3327 in the place where the name of the web server (the "host") is expected. If you don't want to hardcode the name of your webserver, then use CGI's methods server_name or virtual_host, whichever is appropriate.

Replies are listed 'Best First'.
Re^2: What am I doing wrong here?
by haukex (Archbishop) on Apr 12, 2018 at 12:05 UTC
    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