r61091@onn: sartak | 2008-05-26 21:32:50 -0400
[p5sagit/Devel-REPL.git] / lib / Devel / REPL / Plugin / Timing.pm
1 package Devel::REPL::Plugin::Timing;
2
3 use Moose::Role;
4 use Time::HiRes 'time';
5 use namespace::clean -except => [ 'meta' ];
6
7 around 'eval' => sub {
8     my $orig = shift;
9     my ($self, $line) = @_;
10
11     my @ret;
12     my $start = time;
13
14     if (wantarray) {
15         @ret = $self->$orig($line);
16     }
17     else {
18         $ret[0] = $self->$orig($line);
19     }
20
21     $self->print("Took " . (time - $start) . " seconds.\n");
22     return @ret;
23 };
24
25 1;
26
27 __END__
28
29 =head1 NAME
30
31 Devel::REPL::Plugin::Timing - display execution times
32
33 =cut
34