This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Benchmark: using code refs
[perl5.git] / lib / Benchmark.pm
index c382fcb..ee7cf74 100644 (file)
@@ -329,7 +329,9 @@ sub runloop {
        last if $pack ne $curpack;
     }
 
-    my $subcode = "sub { package $pack; my(\$_i)=$n; while (\$_i--){$c;} }";
+    my $subcode = (ref $c eq 'CODE')
+       ? "sub { package $pack; my(\$_i)=$n; while (\$_i--){&\$c;} }"
+       : "sub { package $pack; my(\$_i)=$n; while (\$_i--){$c;} }";
     my $subref  = eval $subcode;
     croak "runloop unable to compile '$c': $@\ncode: $subcode\n" if $@;
     print STDERR "runloop $n '$subcode'\n" if ($debug);