From: Father Chrysostomos Date: Wed, 18 Jan 2012 21:03:32 +0000 (-0800) Subject: In overload::AddrRef, use ‘no overloading’ X-Git-Tag: accepted/trunk/20130322.191538~980 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=4403f0436417f874935b2f95d48b8fc6d7a7d624;p=platform%2Fupstream%2Fperl.git In overload::AddrRef, use ‘no overloading’ This speeds this up by about 13 times. --- diff --git a/lib/overload.pm b/lib/overload.pm index 90463b3..77dfa66 100644 --- a/lib/overload.pm +++ b/lib/overload.pm @@ -113,17 +113,8 @@ sub Method { } sub AddrRef { - my $package = ref $_[0]; - return "$_[0]" unless $package; - - local $@; - local $!; - require Scalar::Util; - my $class = Scalar::Util::blessed($_[0]); - my $class_prefix = defined($class) ? "$class=" : ""; - my $type = Scalar::Util::reftype($_[0]); - my $addr = Scalar::Util::refaddr($_[0]); - return sprintf("%s%s(0x%x)", $class_prefix, $type, $addr); + no overloading; + "$_[0]"; } *StrVal = *AddrRef;