Ambrosia
view release on metacpan or search on metacpan
benchmark/Ambrosia/Event.b view on Meta::CPAN
#!/usr/bin/perl
use warnings;
use strict;
use lib qw(lib t);
use Benchmark;
{
package Foo;
use Ambrosia::Event qw/on_run/;
use Ambrosia::Meta;
class
{
public => [qw/foo/],
};
sub run
{
my $self = shift;
$self->publicEvent(on_run => $self->foo);
}
1;
}
my $foo = new Foo(foo=>123);
$foo->on_run(sub {$foo->foo=1; return 1;});
$foo->on_run(sub {$foo->foo+=1; return 0;});
$foo->on_run(sub {$foo->foo=3; return 0;});
my $NUM_ITER = 1000_000;
timethese($NUM_ITER, {
'run' => sub { $foo->run() },
});
( run in 0.927 second using v1.01-cache-2.11-cpan-ceb78f64989 )