Hi,

I create monthly log files with names like statistics_01_2005.log. Now I have a 
function which returns the logfile name for the current month:

sub statfile {
    my @date = localtime(time);
    my ($month, $year) = @date[4,5];
    $year += 1900;
    $month = sprintf ("%02d", $month+1);    
    return my $statfile = qq{statistics_${month}_${year}.log};
}

In some cases I need the name of last month's logfile. To achieve this, I 
modified the subroutine like this:

sub statfile {
    my $mode = shift;
    my @date = localtime(time);
    my ($month, $year) = @date[4,5];
    $year += 1900;
    if ($mode) {
        $month = sprintf ("%02d", $month);
        $month = 12 if $month == 0;
        $year = $year - 1;
        }
    else {
        $month = sprintf ("%02d", $month+1);    
    }
    return my $statfile = qq{statistics_${month}_${year}.log};
}

This looks quite clumsy to me. Is there a more elegant way?

Thanks,

Jan
-- 
How many Microsoft engineers does it take to screw in a lightbulb? None. They 
just redefine "dark" as the new standard.

--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>


Reply via email to