http://qs321.pair.com?node_id=599284

This code sends me an email with the number of days until a significant event; in this case, the 2008 election. It could easily be adapted to send the number of days since an event (a sobriety date, for example, or the days since you started programming in Perl).

I run a cron job to send this email to myself every day.

use strict; use Net::SMTP; use Date::Format; use Date::Calc qw(Delta_Days Add_Delta_Days); my $smtp=Net::SMTP->new('mail.sample.com'); $smtp->mail('zeno@sample.com'); $smtp->recipient('zeno@sample.com'); my $msg = ""; $msg .= << 'HEADER'; Priority: Non-Urgent Importance: low sensitivity: Personal From: "Election Day" <zeno@sample.com> To: <zeno@sample.com> HEADER # Set Expiry Date 1 day in the future my $expiry_date = time2str("%a, %d %b %T %Y %z", time+86400); $msg .= "Expiry-Date: " . $expiry_date ."\n"; my ($now_yr, $now_mon, $now_day) = (localtime)[5, 4, 3]; $now_mon += 1; $now_yr += 1900; my $days_until = Delta_Days($now_yr, $now_mon, $now_day, 2008, 11, 04) +; $msg .= "subject: " . $days_until . " days til election\n\n"; $msg .= $days_until . " days til election\n\n"; $smtp->data($msg); $smtp->quit;