Ancient
view release on metacpan or search on metacpan
bench/clamp.pl view on Meta::CPAN
#!/usr/bin/env perl
use strict;
use warnings;
use Benchmark qw(cmpthese);
use lib 'blib/lib', 'blib/arch';
use util qw(clamp);
print "=" x 60, "\n";
print "clamp - Range Constraint Benchmark\n";
print "=" x 60, "\n\n";
# Pure Perl clamp
sub pure_clamp {
my ($val, $min, $max) = @_;
return $val < $min ? $min : $val > $max ? $max : $val;
}
print "=== Value in range ===\n";
cmpthese(-2, {
'util::clamp' => sub { clamp(50, 0, 100) },
'pure_clamp' => sub { pure_clamp(50, 0, 100) },
'ternary' => sub { my $v=50; $v<0?0:$v>100?100:$v },
});
print "\n=== Value below min ===\n";
cmpthese(-2, {
'util::clamp' => sub { clamp(-10, 0, 100) },
'pure_clamp' => sub { pure_clamp(-10, 0, 100) },
});
print "\n=== Value above max ===\n";
cmpthese(-2, {
'util::clamp' => sub { clamp(150, 0, 100) },
'pure_clamp' => sub { pure_clamp(150, 0, 100) },
});
print "\nDONE\n";
( run in 0.600 second using v1.01-cache-2.11-cpan-cdf2f3d4e48 )