$timer = IO::Async::Timer->new( %args )
Constructs a particular subclass of "IO::Async::Timer" object, and returns it. This constructor is provided for backward compatibility to older code which doesn't use the subclasses. New code should directly construct a subclass instead.
Once constructed, the "Timer" will need to be added to the "Loop" before it will work. It will also need to be started by the "start" method.
$running = $timer->is_running
Returns true if the Timer has been started, and has not yet expired, or been stopped.
$timer->start
Starts the Timer. Throws an error if it was already running.
If the Timer is not yet in a Loop, the actual start will be deferred until it is added. Once added, it will be running, and will expire at the given duration after the time it was added.
As a convenience, $timer is returned. This may be useful for starting timers at construction time:
$loop->add( IO::Async::Timer->new( ... )->start );
$timer->stop
Stops the Timer if it is running. If it has not yet been added to the "Loop" but there is a start pending, this will cancel it.