% % % my %opt = @_; % % my $prefix = $opt{'prefix'} || ''; % my $disabled = $opt{'disabled'} || ''; % my $empty = $opt{'empty_option'} || ''; % my $start_year = $opt{'start_year'}; % my $end_year = $opt{'end_year'} || '2037'; % % my @mon; % if ( $opt{'show_month_abbr'} ) { % @mon = qw(Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec); % } else { % @mon = ( 1 .. 12 ); % } % % my $date = $opt{'selected_date'} || ''; % $date = '' if $date eq '-'; % #$date ||= '01-2000' unless $empty; % % my $mon = $opt{'selected_mon'} || 0; % my $year = $opt{'selected_year'} || 0; % if ( $date ) { % if ( $date =~ /^(\d{4})-(\d{1,2})-\d{1,2}$/ ) { #PostgreSQL date format % ( $mon, $year ) = ( $2, $1 ); % } elsif ( $date =~ /^(\d{1,2})-(\d{1,2}-)?(\d{4}$)/ ) { % ( $mon, $year ) = ( $1, $3 ); % } else { % die "unrecognized expiration date format: $date"; % } % } % % unless ( $start_year ) { % my @t = localtime; % $start_year = $t[5] + 1900; % } % $start_year = $year if $start_year > $year && $year > 0; % % /