I recently converted a large newsgroup reading system to using Event.pm (from my own home-grown event driven implementation.) I found that the 'after' attribute for timers was not working the way I thought. Delving into the code showed me that the Event.pod inadequately documents the 'after' attribute. I recommend something like this:
The constructor also accepts an 'after' attribute. The 'after' attribute sets the 'repeat' attribute, and the value for the 'after' attribute is used for the interval when the 'interval' attribute is not used. The use of 'after' and 'at' are mutually exclusive. On a minor note, the Event.pod states: It might be useful to know the time at the start of today. You can find it with: use Time::Local; my $TodaySeconds = int timelocal(0,0,0,(localtime)[3,4,5]); However, it's quicker and easier to do the same thing as follows: my $TodaySeconds = time(); $TodaySeconds -= $TodaySeconds % 86400;