#!/usr/bin/perl

# $value = datetab( $table, $date )
# datetab( $table, $date, $newvalue )
#
# Look up (and possibly change) a value index by a date.
# The date is of the form "yyyymmdd", year(1990-), month(1-12),
# day(1-31).

sub datetab {
    my ($tab, $date, $value) = @_;
    my ($year, $month, $day) = ($date =~ /^(\d\d\d\d)(\d\d)(\d\d)$/)
        or die "Bad date format $date";

    $year -= 1990;
    --$month; --$day;
    if (@_ < 3) {
        return $tab->[$year][$month][$day];
    } else {
        return $tab->[$year][$month][$day] = $value;
    }
}

my $table = [];

datetab($table, "19990821", "Wolf book published");
datetab($table, "19990923", "This example created");
print datetab($table, "19990923"), " on September 23, 1999.\n";
