make weaken work on any ref, not just blessed refs
Graham Knop [Fri, 20 Apr 2018 09:10:44 +0000 (11:10 +0200)]
lib/curry.pm

index 1a9c237..9fd6559 100644 (file)
@@ -24,7 +24,7 @@ use Scalar::Util ();
 
 $curry::weak = sub {
   my ($invocant, $code) = splice @_, 0, 2;
-  Scalar::Util::weaken($invocant) if Scalar::Util::blessed($invocant);
+  Scalar::Util::weaken($invocant) if length ref $invocant;
   my @args = @_;
   sub {
     return unless defined $invocant;
@@ -34,7 +34,7 @@ $curry::weak = sub {
 
 sub AUTOLOAD {
   my $invocant = shift;
-  Scalar::Util::weaken($invocant) if Scalar::Util::blessed($invocant);
+  Scalar::Util::weaken($invocant) if length ref $invocant;
   my ($method) = our $AUTOLOAD =~ /^curry::weak::(.+)$/;
   my @args = @_;
   return sub {