package Tangram::Driver::mysql::Expr::Date; use strict; use vars qw(@ISA); @ISA = qw( Tangram::Expr ); my %autofun = ( dayofweek => 'Integer', weekday => 'Integer', dayofmonth => 'Integer', dayofyear => 'Integer', month => 'Integer', dayname => 'String', monthname => 'String', quarter => 'Integer', week => 'Integer', year => 'Integer', yearweek => 'Integer', to_days => 'Integer', unix_timestamp => 'Integer', ); use vars qw( $AUTOLOAD ); use Carp; sub AUTOLOAD { my ($self) = @_; my ($fun) = $AUTOLOAD =~ /\:\:(\w+)$/; croak "Unknown method '$fun'" unless exists $autofun{$fun}; eval <expr(); return Tangram\:\:$autofun{$fun}->expr("\U$fun\E(\$expr)", \$self->objects); } SUBDEF goto &$fun; } 1;