5.10 produces scalar refs, not globs, for constant subs
Yuval Kogman [Wed, 18 Jun 2008 09:35:49 +0000 (09:35 +0000)]
lib/Class/MOP.pm

index 86579c6..d127aec 100644 (file)
@@ -169,7 +169,14 @@ sub is_class_loaded {
     # check for any method
     foreach ( keys %{$$pack} ) {
         next if substr($_, -2, 2) eq '::';
-        return 1 if defined *{${$$pack}{$_}}{CODE};
+
+        my $glob = ${$$pack}{$_} || next;
+
+        if ( IS_RUNNING_ON_5_10 ) {
+            return 1 if ref $glob eq 'SCALAR';
+        }
+
+        return 1 if defined *{$glob}{CODE};
     }
 
     # fail