One recurring problem in modules that use Scalar::Util's weaken function is that it is not present in the pure-perl variant. While this isn't necessarily always a problem in a straight CPAN-based Perl environment, some operating system distributions only include the pure-Perl versions, don't include the XS version, and so weaken is then "missing" from the platform, despite passing a dependency on Scalar::Util successfully.