use constant WEEKDAY => 1; use constant WEEKEND => 0; ... sub is_weekday { my ($self, $date) = @_; my $dow = (localtime ($date || time))[6]; return substr $self->{weekdays}, $dow, 1 ? WEEKDAY : WEEKEND; } #### my %params = ( ... weekdays => '0011111', # Note that this sets Sun/Mon = weekend, Tue-Sat = weekday ... ); ... is_deeply($obj, \%params, 'account type created with params'); is($obj->is_weekday(UnixDate(ParseDate('last sunday'), "%s")), 0, 'Sunday is weekend'); is($obj->is_weekday(UnixDate(ParseDate('last tuesday'), "%s")), 1, 'Tuesday is weekday'); #### root@system:/some/path# prove account_type.t account_type....NOK 27 # Failed test 'Sunday is weekend' # in account_type.t at line 69. # got: '1' # expected: '0' account_type....NOK 28 # Failed test 'Tuesday is weekday' # in account_type.t at line 71. # got: '0' # expected: '1'