#!C:\perl\bin\perl.exe -lw my $starttime = localtime(); my $starthms = $starttime; $starthms =~ /[A-Z]+\s[A-Z]+\s+\d+\s+(\d{2}:\d{2}:\d{2}).*/i; $starthms = $1; print $starthms; if ( $starthms =~ /(\d+):(\d+):(\d+)/ ) { my $hours = $1; my $minutes = $2; my $seconds = $3; our $startsecs = ($hours*60*60) + ($minutes*60) + $seconds; } sleep 2; # insert your code to be timed my $endtime = localtime(); my $endtimehms = $endtime; $endtimehms =~ /[A-Z]+\s[A-Z]+\s+\d+\s+(\d{2}:\d{2}:\d{2}).*/i; $endpart = $1; if ( $endpart =~ /(\d+):(\d+):(\d+)/ ) { local $hours = $1; local $minutes = $2; local $seconds = $3; our $endtimesecs = ($hours*60*60) + ($minutes*60) + $seconds; } print "\$endpart: $endpart and Runduration: " . ($endtimesecs - $startsecs) . " seconds"; print "=======================\n"; use POSIX; print "starttime, \$^T without POSIX: $^T"; print "Start time, , \$^T with POSIX: " . POSIX::strftime "%H:%M:%S", localtime($^T); print "\t2nd POSIX, \$^T: " . POSIX::strftime "%H:%M:%S", localtime($^T); print "\t3rd POSIX, current time: " . POSIX::strftime "%H:%M:%S", localtime(); print "local_time(): " . localtime(); #### 11:10:11 $endpart: 11:10:13 and Runduration: 2 seconds ======================= starttime, $^T without POSIX: 1233763810 Start time, , $^T with POSIX: 11:10:10 2nd POSIX, $^T: 11:10:10 3rd POSIX, current time: 11:10:13 local_time(): Wed Feb 4 11:10:13 2009 POSIX localtime: Wed Feb 11:10:13 2009 ...and after sleeping another second, POSIX localtime: Wed Feb 11:10:14 2009