summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/Benchmark.pm28
-rw-r--r--lib/Benchmark.t2
2 files changed, 25 insertions, 5 deletions
diff --git a/lib/Benchmark.pm b/lib/Benchmark.pm
index 0ca7c59e4f..c472d58ffd 100644
--- a/lib/Benchmark.pm
+++ b/lib/Benchmark.pm
@@ -485,19 +485,39 @@ sub usage {
# The cache needs two branches: 's' for strings and 'c' for code. The
# empty loop is different in these two cases.
-sub clearcache ($) {
+$_Usage{clearcache} = <<'USAGE';
+usage: clearcache($count);
+USAGE
+
+sub clearcache {
+ die usage unless @_ == 1;
delete $Cache{"$_[0]c"}; delete $Cache{"$_[0]s"};
}
-sub clearallcache () {
+$_Usage{clearallcache} = <<'USAGE';
+usage: clearallcache();
+USAGE
+
+sub clearallcache {
+ die usage if @_;
%Cache = ();
}
-sub enablecache () {
+$_Usage{enablecache} = <<'USAGE';
+usage: enablecache();
+USAGE
+
+sub enablecache {
+ die usage if @_;
$Do_Cache = 1;
}
-sub disablecache () {
+$_Usage{disablecache} = <<'USAGE';
+usage: disablecache();
+USAGE
+
+sub disablecache {
+ die usage if @_;
$Do_Cache = 0;
}
diff --git a/lib/Benchmark.t b/lib/Benchmark.t
index b4d714931c..8081476785 100644
--- a/lib/Benchmark.t
+++ b/lib/Benchmark.t
@@ -583,7 +583,7 @@ is_deeply ([keys %Benchmark::Cache], \@before_keys,
foreach my $func (@takes_no_args) {
eval "$func(42)";
- like( $@, qr/Too many arguments for Benchmark::$func/, "$func usage: with args" );
+ is( $@, $usage{$func}, "$func usage: with args" );
}
}