The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

Sub::Timekeeper - calls a function with a stopwatch

SYNOPSIS

use Sub::Timekeeper qw(timekeeper);

my $val = timekeeper(my $elapsed, sub {
    ...
    return $retval;
});

my @arr = timekeeper(my $elapsed, sub {
    ...
    return @retarr;
});

DESCRIPTION

The module exports the timekeeper function, that can be used to measure the time spent to execute a function. The duration is set to the first argument in seconds (as a floating point value).

The duration is set regardless of whether the called function returned normally or by an exception. In other words the following snippet will report the correct duration.

my $elapsed;
eval {
    timekeeper($elapsed, sub {
        ...
    }
};
if ($@) {
    warn "got error $@ after $elapsed seconds";
}

AUTHOR

Kazuho Oku

LICENSE

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

See <http://www.perl.com/perl/misc/Artistic.html>