sub
process {
my
(
$self
,
$w
,
$params
) =
@_
;
return
[]
unless
(
$self
->names && @{
$self
->names } == 3 );
my
(
$hour
,
$min
,
$sec
) = @{
$self
->names };
my
$h
=
$params
->{
$hour
} || 0;
my
$m
=
$params
->{
$min
} || 0;
my
$s
=
$params
->{
$sec
} || 0;
return
[]
unless
(
$h
&&
$m
&&
$s
);
my
$results
= [];
unless
(
$h
=~ /^\d+$/
&&
$m
=~ /^\d+$/
&&
$s
=~ /^\d+$/
&& Date::Calc::check_time(
$h
,
$m
,
$s
) )
{
push
@$results
, HTML::Widget::Error->new(
{
name
=>
$hour
,
message
=>
$self
->mk_message } );
push
@$results
, HTML::Widget::Error->new(
{
name
=>
$min
,
message
=>
$self
->mk_message } );
push
@$results
, HTML::Widget::Error->new(
{
name
=>
$sec
,
message
=>
$self
->mk_message } );
}
return
$results
;
}
1;