Undefined subroutine &Scalar::Util::weaken

Ever had the problem in Perl:
Undefined subroutine &Scalar::Util::weaken called at
This is caused by a version of Scalar::Util that is perl only and doesn’t implement the weaken function (ref).  To install the XS version of Scalar::Util use cpan and run:
force install Scalar::Util

Adobe Flash in Fedora 16 x86_64

I always had problems getting Flash to work in both Firefox and Chrome when running Fedora Linux.  This became more of a problem since I started using the x86_64 kernel.  But here are the steps I took that worked under Fedora 16.  Thanks to the_nins on the chrome support pages.

Install the flash rpm from http://get.adobe.com/flashplayer/

Install the other required packages

yum install flash-plugin nspluginwrapper.x86_64 nspluginwrapper.i686 alsa-plugins-pulseaudio.i686 libcurl.i686

Create the wrapped up plugins for x86_64

mozilla-plugin-config -i -g -v

Create a symlink to the wrapped file:

cd /usr/lib64/mozilla/plugins
ln -s /usr/lib64/mozilla/plugins-wrapped/nswrapper_32_64.libflashplayer.so

Restart the browser and it should pickup the flash plugin.  I would also highly recommend using Flashblock for Firefox to load flash animations on demand.

Perl “Perl_Gthr_key_ptr” problems

I just upgraded by laptop to Fedora 16 and started to get problems with Perl libraries that were installed via yum.  Errors along the lines of:
perl: symbol lookup error: /usr/local/lib64/perl5/auto/Crypt/Rijndael/Rijndael.so: undefined symbol: Perl_Gthr_key_ptr
Some research suggest this is caused by the shared library being built against a different version of perl.  This is mainly a problem because Fedora provides a number of prebuild perl libraries through yum.  The fix for this is to use cpan to rebuild the libraries. So as root start cpan:
Then reinstall the libraries causing problems.  In the above example I did:
force install Crypt::Rijndael
This will recreate the .so file against the correct perl version.

CPAN error with vxs.so

There may be problems with cpan failing due to:
perl: symbol lookup error: /usr/local/lib64/perl5/auto/version/vxs/vxs.so: undefined symbol: PerlGthrkey_ptr
I managed to fix this by just deleting the whole folder:

Apache and selinux

If you are calling perl scripts from apache there might be further problems like:
failed to map segment from shared object: Permission denied at /usr/lib64/perl5/DynaLoader.pm
This is an SE linux issue and can be fixed with chcon:
find /usr/local/lib64/perl5/auto -name "*.so" | xargs -n 1 chcon unconfined_u:object_r:lib_t:s0