I would like to take control of the output generated in seconds using perl. I would like to show the time (in seconds) in the form of days, hours, minutes and seconds to make it human readable format.
my $start = time;
<some other perl codes>
my $duration = time - $start;
print "Total Execution time: $duration s\n";
Output is 311052 s
Required Output is 3 days 14 hours 24 minutes 12 seconds
You could use the Time::Piece
and Time::Seconds
modules, which will do all of this for you
In this program I have simply added pi days onto the current date and time to get a representative duration. You will, of course, use an actual time
use strict;
use warnings;
use Time::Piece;
use Time::Seconds qw/ ONE_DAY /;
my $start = localtime;
my $end = $start + int(355/113 * ONE_DAY);
my $duration = ($end - $start)->pretty;
print "Total Execution time: $duration\n";
Total Execution time: 3 days, 3 hours, 23 minutes, 53 seconds