in reply to Strange Params::Validate Error

Using Data::Dumper, do this:

sub MakeDateTime { my $self = shift; my ($Year, $Month, $Day, $Hour, $Minute, $Second, $MilliSecond) = @_ print Dumper \@_; ...

It looks like there might be something unexpected at the front of the params array that may be confusing DateTime/Params::Validate, per this line in the error:

DateTime::new('undef', 'year', 2015, 'month', 08, 'day', 24, 'hour', 1 +7, ...) called at MonitorClass.pm line 80

DateTime may fail with your error if it can't figure out the locale, but your time_zone param is set properly so I don't see that being the issue. Also, please let us know which version of DateTime you're using.

-stevieb