Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package Timer;
- use Time::HiRes qw(gettimeofday tv_interval);
- use Mojo::Base -base;
- use experimental 'signatures', 'postderef';
- # keep an internal event log
- has '_event_log' => sub { [] };
- has '_start_time' => sub { [ gettimeofday ] };
- sub record ($self, $event_description) {
- # record the event and timestamp
- my $event = {
- timestamp => sprintf("%.3f", tv_interval($self->_start_time)),
- description => $event_description,
- };
- push($self->event_log->@*, $event);
- }
- # render a full report
- sub report ($self) {
- my $report = '';
- foreach my $event ($self->_event_log->@*) {
- $report .= '[' . $event->{timestamp} . '] ' . $event->{description} . "\n";
- }
- return $report;
- }
- 1;
Advertisement
Add Comment
Please, Sign In to add comment