It works just fine with Perl 5.20 with threads, and with Perl 5.22 without threads. But if using Perl 5.22+ with threads, it fails most of the time, with some unrelated random error: $ perl5.22.1 /usr/local/bin/distilator --threads=10 . String found where operator expected at /usr/local/lib/perl5/5.22/mach/Socket.pm line 829, near "croak "usage: (port,iaddr) = sockaddr_in(sin_sv)"" (Do you need to predeclare croak?) String found where operator expected at /usr/local/lib/perl5/5.22/mach/Socket.pm line 832, near "croak "usage: sin_sv = sockaddr_in(port,iaddr))"" (Do you need to predeclare croak?) String found where operator expected at /usr/local/lib/perl5/5.22/mach/Socket.pm line 839, near "croak "usage: (port,in6addr,scope_id,flowinfo) = sockaddr_in6(sin6_sv)"" (Do you need to predeclare croak?) String found where operator expected at /usr/local/lib/perl5/5.22/mach/Socket.pm line 843, near "croak "usage: sin6_sv = sockaddr_in6(port,in6addr,[scope_id,[flowinfo]])"" (Do you need to predeclare croak?) String found where operator expected at /usr/local/lib/perl5/5.22/mach/Socket.pm line 850, near "croak "usage: (filename) = sockaddr_un(sun_sv)"" (Do you need to predeclare croak?) String found where operator expected at /usr/local/lib/perl5/5.22/mach/Socket.pm line 853, near "croak "usage: sun_sv = sockaddr_un(filename)"" (Do you need to predeclare croak?) 501 [DISTFILE] http://ftp.jaist.ac.jp/pub/CPAN/modules/by-module/../../src/5.0/perl-5.23.9-43_GH0.tar.gz 500 [DISTFILE] ftp://ftp.kddlabs.co.jp/lang/perl/CPAN/modules/by-module/../../src/5.0/perl-5.23.9-43_GH0.tar.gz 500 [DISTFILE] https://codeload.github.com/Perl/perl5/tar.gz/v5.23.9-43-gef66793?dummy=/perl-5.23.9-43_GH0.tar.gz 500 [DISTFILE] http://distcache.eu.FreeBSD.org/local-distfiles/mat/perl/perl-5.23.9-43_GH0.tar.gz 200 [DISTFILE] http://distcache.FreeBSD.org/local-distfiles/mat/perl/perl-5.23.9-43_GH0.tar.gz 404 [DISTFILE] http://www.cpan.dk/modules/by-module/../../src/5.0/perl-5.23.9-43_GH0.tar.gz 200 [DISTFILE] http://distcache.us-east.FreeBSD.org/local-distfiles/mat/perl/perl-5.23.9-43_GH0.tar.gz 200 [DISTFILE] http://distcache.us-west.FreeBSD.org/local-distfiles/mat/perl/perl-5.23.9-43_GH0.tar.gz 404 [DISTFILE] http://cpan.metacpan.org/modules/by-module/perl-5.23.9-43_GH0.tar.gz 404 [DISTFILE] http://cpan.metacpan.org/modules/by-module/../../src/5.0/perl-5.23.9-43_GH0.tar.gz 500 [WWW] http://www.perl.org/ 404 [DISTFILE] ftp://ftp.sunet.se/pub/lang/perl/CPAN/modules/by-module/../../src/5.0/perl-5.23.9-43_GH0.tar.gz 404 [DISTFILE] http://www.cpan.org/modules/by-module/../../src/5.0/perl-5.23.9-43_GH0.tar.gz 404 [DISTFILE] http://backpan.perl.org/modules/by-module/../../src/5.0/perl-5.23.9-43_GH0.tar.gz 404 [DISTFILE] ftp://ftp.cpan.org/pub/CPAN/modules/by-module/perl-5.23.9-43_GH0.tar.gz 403 [DISTFILE] http://ftp.twaren.net/Unix/Lang/CPAN/modules/by-module/../../src/5.0/perl-5.23.9-43_GH0.tar.gz 404 [DISTFILE] ftp://ftp.mirrorservice.org/sites/cpan.perl.org/CPAN/modules/by-module/../../src/5.0/perl-5.23.9-43_GH0.tar.gz 404 [DISTFILE] ftp://ftp.cpan.org/pub/CPAN/modules/by-module/../../src/5.0/perl-5.23.9-43_GH0.tar.gz 404 [DISTFILE] ftp://ftp.funet.fi/pub/languages/perl/CPAN/modules/by-module/../../src/5.0/perl-5.23.9-43_GH0.tar.gz 404 [DISTFILE] ftp://ftp.auckland.ac.nz/pub/perl/CPAN/modules/by-module/../../src/5.0/perl-5.23.9-43_GH0.tar.gz or: $ perl5.22.1 /usr/local/bin/distilator --threads=10 . 200 [DISTFILE] http://distcache.eu.FreeBSD.org/local-distfiles/mat/perl/perl-5.23.9-43_GH0.tar.gz 200 [DISTFILE] http://distcache.us-east.FreeBSD.org/local-distfiles/mat/perl/perl-5.23.9-43_GH0.tar.gz 200 [DISTFILE] http://distcache.us-west.FreeBSD.org/local-distfiles/mat/perl/perl-5.23.9-43_GH0.tar.gz String found where operator expected at /usr/local/lib/perl5/5.22/mach/IO/Seekable.pm line 114, near "croak 'usage: $io->seek(POS, WHENCE)'" (Do you need to predeclare croak?) String found where operator expected at /usr/local/lib/perl5/5.22/mach/IO/Seekable.pm line 119, near "croak 'usage: $io->sysseek(POS, WHENCE)'" (Do you need to predeclare croak?) String found where operator expected at /usr/local/lib/perl5/5.22/mach/IO/Seekable.pm line 124, near "croak 'usage: $io->tell()'" (Do you need to predeclare croak?) 500 [DISTFILE] https://codeload.github.com/Perl/perl5/tar.gz/v5.23.9-43-gef66793?dummy=/perl-5.23.9-43_GH0.tar.gz 404 [DISTFILE] http://cpan.metacpan.org/modules/by-module/../../src/5.0/perl-5.23.9-43_GH0.tar.gz 404 [DISTFILE] http://www.cpan.org/modules/by-module/../../src/5.0/perl-5.23.9-43_GH0.tar.gz 404 [DISTFILE] http://backpan.perl.org/modules/by-module/../../src/5.0/perl-5.23.9-43_GH0.tar.gz 200 [DISTFILE] http://distcache.FreeBSD.org/local-distfiles/mat/perl/perl-5.23.9-43_GH0.tar.gz 404 [DISTFILE] ftp://ftp.sunet.se/pub/lang/perl/CPAN/modules/by-module/../../src/5.0/perl-5.23.9-43_GH0.tar.gz 404 [DISTFILE] http://www.cpan.dk/modules/by-module/../../src/5.0/perl-5.23.9-43_GH0.tar.gz 404 [DISTFILE] http://cpan.metacpan.org/modules/by-module/perl-5.23.9-43_GH0.tar.gz 500 [WWW] http://www.perl.org/ 404 [DISTFILE] http://ftp.jaist.ac.jp/pub/CPAN/modules/by-module/../../src/5.0/perl-5.23.9-43_GH0.tar.gz 403 [DISTFILE] http://ftp.twaren.net/Unix/Lang/CPAN/modules/by-module/../../src/5.0/perl-5.23.9-43_GH0.tar.gz 404 [DISTFILE] ftp://ftp.mirrorservice.org/sites/cpan.perl.org/CPAN/modules/by-module/../../src/5.0/perl-5.23.9-43_GH0.tar.gz 404 [DISTFILE] ftp://ftp.cpan.org/pub/CPAN/modules/by-module/perl-5.23.9-43_GH0.tar.gz 404 [DISTFILE] ftp://ftp.cpan.org/pub/CPAN/modules/by-module/../../src/5.0/perl-5.23.9-43_GH0.tar.gz 404 [DISTFILE] ftp://ftp.funet.fi/pub/languages/perl/CPAN/modules/by-module/../../src/5.0/perl-5.23.9-43_GH0.tar.gz 404 [DISTFILE] ftp://ftp.kddlabs.co.jp/lang/perl/CPAN/modules/by-module/../../src/5.0/perl-5.23.9-43_GH0.tar.gz 404 [DISTFILE] ftp://ftp.auckland.ac.nz/pub/perl/CPAN/modules/by-module/../../src/5.0/perl-5.23.9-43_GH0.tar.gz
I am able to reproduce the errors and seem to come from the socket module. I am trying to create a minimal test case to report upstream.
A commit references this bug: Author: ehaupt Date: Tue Dec 6 12:24:33 UTC 2016 New revision: 427950 URL: https://svnweb.freebsd.org/changeset/ports/427950 Log: Update to 0.3. Switch from perl threads to Parallel::ForkManager. With perl 5.24, threads used in distilator produce a many random warnings hinting at the fact that the modules used to check the links are not (and never were) thread safe. Remove WWW. There is no public website available. PR: 208506 (based on) Notified by: mat MFH: 2016Q4 Changes: head/ports-mgmt/distilator/Makefile head/ports-mgmt/distilator/distinfo head/ports-mgmt/distilator/pkg-descr head/ports-mgmt/distilator/pkg-plist