package Class::Date::Const;
use strict;
use vars qw(@EXPORT @ISA @ERROR_MESSAGES %EXPORT_TAGS);
use Exporter;
my %FIELDS = (
# Class::Date fields
c_year => 0,
c_mon => 1,
c_day => 2,
c_hour => 3,
c_min => 4,
c_sec => 5,
c_wday => 6,
c_yday => 7,
c_isdst => 8,
c_epoch => 9,
c_tz => 10,
c_error => 11,
c_errmsg => 12,
# Class::Date::Rel fields
cs_mon => 0,
cs_sec => 1,
# Class::Date::Invalid fields
ci_error => 0,
ci_errmsg => 1,
);
eval " sub $_ () { ".$FIELDS{$_}."}" foreach keys %FIELDS;
@ISA = qw(Exporter);
my @ERRORS = (
E_OK => '',
E_INVALID => 'Invalid date or time',
E_RANGE => 'Range check on date or time failed',
E_UNPARSABLE => 'Unparsable date or time: %s',
E_UNDEFINED => 'Undefined date object',
);
my @ERR;
# predeclaring error constants
my $c = 0;
while (@ERRORS) {
my $errorcode = shift @ERRORS;
my $errorname = shift @ERRORS;
eval "sub $errorcode () { $c }";
$ERROR_MESSAGES[$c] = $errorname;
push @{$EXPORT_TAGS{errors}}, $errorcode;
$c++;
}
@EXPORT = (keys %FIELDS, qw(@ERROR_MESSAGES), @{$EXPORT_TAGS{errors}});
1;
syntax highlighted by Code2HTML, v. 0.9.1