foreach my $key ( @keys ){
my $meth = "get_$key";
$equals = 0 unless ( $hashref->{ $key } eq $obj->$meth() );
}
####
#!/usr/bin/perl
use strict;
use warnings;
use Benchmark qw(timethese cmpthese);
{ package foo; sub get_foo { "@_" }; sub get_bar { "@_" } }
my $puk = sub {
for (qw(foo bar)) {
my $code = "foo->get_$_(qq(bar))";
eval $code;
}
};
my $rev = sub {
for (qw(foo bar)) {
my $meth = "get_$_";
foo->$meth("bar");
}
};
cmpthese timethese(-2, { rev => $rev, puk => $puk, });
####
Benchmark: running puk, rev for at least 2 CPU seconds...
puk: 2 wallclock secs ( 2.08 usr + 0.00 sys = 2.08 CPU) @ 16447.12/s (n=34210)
rev: 3 wallclock secs ( 2.08 usr + 0.00 sys = 2.08 CPU) @ 217107.21/s (n=451583)
Rate puk rev
puk 16447/s -- -92%
rev 217107/s 1220% --