#! /usr/bin/perl use Modern::Perl; use Time::ParseDate; my $DEBUG; #$DEBUG++; sub debug { say @_ if $DEBUG }; my ($time, @command) = @ARGV; debug "$time\t@command"; my $futuretime = parsedate($time, TIMEFIRST => 1, PREFER_FUTURE => 1); debug "future time is\n\t$futuretime\ntime is ", time; my $seconds_until = abs($futuretime - time()); debug "$seconds_until until"; #DEBUG countdown($seconds_until); sub readable { my ($seconds_pristine) = @_; my $seconds = $seconds_pristine % 60; my $minutes_pristine = $seconds_pristine/60; my $minutes = $minutes_pristine % 60; my $hours = int($minutes_pristine / 60); my $value = "$hours hour(s), $minutes minute(s), $seconds second(s)"; return $value; } sub countdown { $|++; for my $i (reverse 0 .. $seconds_until) { my $readable = readable($i); print "\r$readable remaining."; sleep 1; } } #sleep($seconds_until);