I think that weakrefs were only experimental as far as using them from the Perl side of things. I believe it's been available in the interpreter for all of the 5.x series. I've never looked at the source for Scalar::Util, but I would guess it's just a wrapper around newrv_noinc()