Use a slightly more paranoid regex
Rafael Garcia-Suarez [Wed, 7 Jan 2009 17:49:19 +0000 (18:49 +0100)]
lib/overload.pm

index 4d1d375..ba0202d 100644 (file)
@@ -150,7 +150,7 @@ sub constant {
     elsif (!exists $constants {$_ [0]}) {
         warnings::warnif ("`$_[0]' is not an overloadable type");
     }
-    elsif (!ref $_ [1] || "$_[1]" !~ /CODE\(0x[\da-f]+\)$/) {
+    elsif (!ref $_ [1] || "$_[1]" !~ /(^|=)CODE\(0x[0-9a-f]+\)$/) {
         # Can't use C<ref $_[1] eq "CODE"> above as code references can be
         # blessed, and C<ref> would return the package the ref is blessed into.
         if (warnings::enabled) {