On a server without IPv6 enabled (FreeBSD 8.2 in this case) Net::Server will not start a server because it attempts to bind to the IPv6 address if it finds the supported modules. The changelog for 2.006 indicates this is a specifically handled case, but it seems not. [mmstaging]~% perl -e 'use base qw(Net::Server); main->run(host => "localhost")' 2012/07/18-10:57:51 main (type Net::Server) starting! pid(36856) Resolved [localhost]:20203 to [::1]:20203, IPv6 Resolved [localhost]:20203 to [127.0.0.1]:20203, IPv4 Binding to TCP port 20203 on host ::1 with IPv6 2012/07/18-10:57:51 Can't connect to TCP port 20203 on ::1 [Protocol not supported] at line 67 in file /usr/local/lib/perl5/site_perl/5.14.2/Net/Server/Proto/TCP.pm 2012/07/18-10:57:51 Server closing! "localhost" resolves to just 127.0.0.1, nothing else. I do not know how it is finding ":;1" above: [mmstaging]~% host localhost localhost.m1e.net has address 127.0.0.1 Workaround is to explicitly request IPv4 for now.