Not sure what's going on here, triage later. The offending line is: my($addr, $port) = getnameinfo($sin, NI_NUMERICHOST | NI_NUMERICSERV); and the "Use of unit value in subroutine entry" typically indicates an XS function getting passed an undef, so its likely that either the constant is somehow evaluating to undef, or $sin is undef. $sin is derived via: my @tmp = getaddrinfo("localhost", "", AF_INET, SOCK_STREAM, 0, 0); if ($#tmp >= 1) { ok(2); } my($family, $socktype, $protocol, $sin, $canonname) = splice(@tmp, $[, 5); Which suggests that getaddrinfo() is returning undef for the resolved packed address for the name. Given that implies "localhost" doesn't resolve to an IP, possibly network-sandbox to blame, or something in my local /etc/hosts or /etc/nsswitch.conf is to blame. ( Hopefully that also encompasses why I have a test failure for perl 5.28 ... )
Works fine now