]> git.vpit.fr Git - perl/modules/Sub-Prototype-Util.git/commitdiff
Clean up recall()
authorVincent Pit <vince@profvince.com>
Thu, 25 Aug 2011 09:36:56 +0000 (11:36 +0200)
committerVincent Pit <vince@profvince.com>
Thu, 25 Aug 2011 10:13:42 +0000 (12:13 +0200)
lib/Sub/Prototype/Util.pm

index c06a913290c7fcac0f4e4d576195b017d3940299..a580cc16343103d061e3b8bc8c2a9e81debdb5d9 100644 (file)
@@ -282,9 +282,17 @@ If you plan to recall several times, consider using L</wrap> instead.
 =cut
 
 sub recall {
- my $wrap = eval { wrap shift };
- croak _clean_msg $@ if $@;
- return $wrap->(@_);
+ my $name = shift;
+
+ my ($wrap, $err);
+ {
+  local $@;
+  $wrap = eval { wrap $name };
+  $err  = $@;
+ }
+ croak _clean_msg $err if $err;
+
+ goto $wrap;
 }
 
 =head1 EXPORT