Ahh, while the deeper parts of this thread explain why that's a nasty thing to do for specific dates, in this particular application you should be fine. Our noble friend
Anonymous Monk is just looking to roll the month back, so he can take those month values and work with them. Of course, he'll want to check to see if he's working with December and January, but otherwise, grabbing the month (and throwing a zero onto the front of a short one) should suffice. Working with the previous code (hacking stupidly, rather than grabbing a pretty module here), and handling both this and last month...
($month, $year) = (localtime)[4..5];
# convert from index to 'normal'
$this_months_year = $year + 1900;
$last_months_year = $this_months_year;
$this_month = $month + 1;
# fix month if = 0
$last_month = $month;
$last_month or $last_month = 12;
# roll back year if this month is january
($this_month == 1) and $last_months_year--;
$this = sprintf("%04d%02d", $this_months_year, $this_month);
$last = sprintf("%04d%02d", $last_months_year, $last_month);
@files_this = <companyname.com-$this??_log>;
@files_last = <companyname.com-$last??_log>;
I think that looks a bit ugly, but that should at least illustrate why it's a good idea to peek into those date related modules. As a sidenote.. did I miss anything else in there, or should that ugly hack do the trick?
-=rev=-