Subject: | It's impossible to debug a program using ParseUtil::Domain on modern perl |
Let's write a simple one-liner:
perl -MParseUtil::Domain -E 'say ParseUtil::Domain::parse_domain("example.com")->{domain};'
It outputs (as expected):
example
Let's try to debug it using built-in Perl debugger:
perl -d -MParseUtil::Domain -E 'say ParseUtil::Domain::parse_domain("example.com")->{domain};'
And the output is:
---
Loading DB routines from perl5db.pl version 1.37
Editor support available.
Enter h or 'h h' for help, or 'man perldebug' for more help.
Internal error: missing symbol for CODE(0x22e10a8) at /opt/perlbrew/perls/perl-5.16.3/lib/site_perl/5.16.3/Perl6/Export/Attrs.pm line 65.
at /opt/perlbrew/perls/perl-5.16.3/lib/site_perl/5.16.3/Perl6/Export/Attrs.pm line 65.
Perl6::Export::Attrs::_invert_tagset('ParseUtil::Domain', 'HASH(0x22e9848)') called at /opt/perlbrew/perls/perl-5.16.3/lib/site_perl/5.16.3/Perl6/Export/Attrs.pm line 78
Perl6::Export::Attrs::_generic_import('ParseUtil::Domain') called at -e line 0
main::BEGIN() called at -e line 0
eval {...} called at -e line 0
BEGIN failed--compilation aborted.
at -e line 0.
Debugged program terminated. Use q to quit or R to restart,
use o inhibit_exit to avoid stopping after program termination,
h q, h R or h o to get additional info.
DB<1>
---
Thus the program is terminated even before we start to debug it.