http://www.perlmonks.org?node_id=1008893

tqisjim has asked for the wisdom of the Perl Monks concerning the following question:

I'm trying to upgrade my system to Perl 5.16. I'm having trouble as indicated. So far, based on some Google searches, I've concluded the problem does not seem specific to XML::Parser::Expat. Otherwise, there doesn't seem to be a definitive solution posted anywhere. Does anybody know where this symbol originates?
# Error: Can't load '/home/jim/perl5/lib/perl5/i686-linux-gnu-thr +ead-multi-64int/auto/XML/Parser/Expat/Expat.so' for module XML::Parse +r::Expat: /home/jim/perl5/lib/perl5/i686-linux-gnu-thread-multi-64int +/auto/XML/Parser/Expat/Expat.so: undefined symbol: PL_thr_key at /usr +/local/lib/perl5/5.16.2/i686-linux/DynaLoader.pm line 190.
Thanks!

Replies are listed 'Best First'.
Re: undefined symbol: PL_thr_key
by tqisjim (Beadle) on Dec 14, 2012 at 19:09 UTC
    Please disregard this question. Apparently, using my package manager to uninstall the previous version of perl was not as effective as a brute force 'rm -f'.

      I'll not disregard your question, for the sake of future readers.

      The error comes from a module compiled against threaded Perl while your Perl installation is not threaded (probably because you recompiled it). The solution is to recompile the module against the new Perl.

      (I had a few such problems when toggling the threads flag on Gentoo.)

        Thank you so much for not disregarding the quesion... I had recompiled Perl without threading and couldn't figure out what the problem was until I read your response! Thanks again!
        And perl-cleaner --reallyall should clear it up