in reply to What's the weaken here for?

Scalar::Util
    and
Recent perl distributions without support for Scalar::Util::weaken() ?.

You'll also find a discussion in the section on references in "Learning Perl" (O'Reilly).