Jane Arc
and 1 contributors




Simple module to report deltas between waypoints in code, with extensible reactions.


  my $t = Time::Checkpoint->new( );
  $t->checkpoint( 'Start' );

  # Code elapses ...

  my $delta = $t->checkpoint( 'Start' );

  # With callback

  my $t = Time::Checkpoint->new(
    callback => \&print_delta

  $t->checkpoint( 'foo' );

  sub print_delta {
    my ($checkpoint, $old_time, $new_time) = (@_);
    my $delta = $new_time - $old_time;
    $LOG->debug( "$checkpoint: delta $delta seconds" );

  # More code elapses...

  $t->checkpoint( 'foo' ); # print_delta is called



new( )

    The constructor takes either no arguments or a hash with one key: callback. If a callback is passed (a code ref), that code will be called with the arguments $name_of_checkpoint, $old_timestamp, $new_timestamp. Returns a Time::Checkpoint object.

checkpoint( $name )
cp( $name )

    Takes one argument, the name of the checkpoint reached. When called, it will perform a hash lookup to determine when it was called last. It will return the delta between the two. It will also call the 'callback' code, as mentioned above, provided it exists.

list_checkpoints( )
lscp( )

    Takes no arguments. Returns a hash of checkpoints and their timestamps.

checkpoint_status( $name )
cpstat( $name )

    Returns the timestamp for a given checkpoint, or undef.

checkpoint_remove( $name )
cprm( $name )

    Removes the specified checkpoint, returning its value if it had one.

flush( )

    Removes all checkpoints.


  Jane A. Avriette <jane@cpan.org>



3 POD Errors

The following errors were encountered while parsing the POD:

Around line 168:

You forgot a '=back' before '=head2'

Around line 170:

'=item' outside of any '=over'

Around line 230:

You forgot a '=back' before '=head1'