Time::SoFar(3) User Contributed Perl Documentation Time::SoFar(3) NNNNAAAAMMMMEEEE Time::SoFar - Perl module to calculate run time SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS use Time::SoFar qw( runtime runinterval figuretimes ); # [...] denotes optional arguments $times = runtime( [$no_optimize] ); @times = runtime( [$no_optimize] ); $times = runinterval( [$no_optimize] ); @times = runinterval( [$no_optimize] ); $times = figuretimes( $seconds [, $no_optimize] ); @times = figuretimes( $seconds [, $no_optimize] ); SSSSAAAAMMMMPPPPLLLLEEEESSSS my $elasped = runtime(); print "Elapsed time $elapsed\n"; # prints, eg, "Elapsed time 17:34\n" my $sincethen = runinterval(1); print "Time since then $sincethen\n"; # prints, eg, "Time since then 0:00:00:51\n" ($day, $hour, $min, $sec) = figuretimes(86400 + 2*3600 + 3*60 + 4, 1); # $day = 1; $hour = 2; $min = 3; $sec = 4; @times = figuretimes(2*3600 + 3*60 + 4); # @times = (2, 3, 4) @times = figuretimes(17,1); # @times = (0, 0, 0, 17) $times = figuretimes(2*3600 + 3*60 + 4, 1); # $times = '0:02:03:04'; DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN TTTTiiiimmmmeeee::::::::SSSSooooFFFFaaaarrrr has two functions for calculating how long a script has been running. `runtime()' always works from the time the script was started (using _$_^_T). `runinterval()' works from the last time `runtime()' or `runinterval()' was called (or since the start of the script). Both `runtime()' and `runinterval()' use `figuretimes()' to render a raw number of seconds into component time units. Both take an optional boolean argument that gets passed to `figuretimes()' to influence its output. In an array context `figuretimes()' returns the timecomponents as an array, in a scalar context it returns those components as a :::: delimited string. The default 2000-12-13 perl v5.6.0 1 Time::SoFar(3) User Contributed Perl Documentation Time::SoFar(3) behaviour is to optimize away 0 output from the longer period end of the output, leaving a minimum of minutes:seconds. This is good for arrays that will be passed to `join()', but not so good for a list of variables, so this behaviour can be disabled by using a true value for _$_n_o___o_p_t_i_m_i_z_e. IIIINNNNHHHHEEEERRRRIIIITTTTAAAANNNNCCCCEEEE Time::SoFar inherits only from Exporter. CCCCAAAAVVVVEEEEAAAATTTTSSSS Time::SoFar has a granularity of seconds, and is therefore not so useful for small elapsed times. PPPPRRRREEEERRRREEEEQQQQUUUUIIIISSSSIIIITTTTEEEESSSS Only stock perl modules are used. OOOOSSSSNNNNAAAAMMMMEEEESSSS So long as _$_^_T and `time()' are calculated using the same epoch there should be no operating system dependence. SSSSEEEEEEEE AAAALLLLSSSSOOOO _$_^_T in the perlvar manpage. CCCCOOOOPPPPYYYYRRRRIIIIGGGGHHHHTTTT Copyright 2000 by Eli the Bearded / Benjamin Elijah Griffin. Released under the same _l_i_c_e_n_s_e(s) as Perl. AAAAUUUUTTTTHHHHOOOORRRR Eli the Bearded wrote this to do away with all the _$_^_T one liners at the end of his batch processing scripts. 2000-12-13 perl v5.6.0 2