It is unclear whether your solution MUST be all-perl or not.
all-perl, - " " " " ( ), (cron Unix/Linux/MacOS, AT pr Windows Windows).
script , , , . ( ) - :
use Time::Local qw ( timelocal_nocheck );
my @time_data = localtime() ;
my $current_dom = $time_data[3];
my $current_dow = $time_data[6];
$time_data[4]++;
$time_data[3] = 0;
@time_data = localtime ( timelocal_nocheck ( @time_data ) );
if ($current_dom == $time_data[3]) {
}
if ($current_dow == 0) {
}
: http://www.perlmonks.org/?node_id=418897