sub _mktime { my ($time, $islocal) = @_; my $class; if (ref $time) { $class = ref $time; } elsif ($time =~ /^\D+$/) { $class = $time; $time = $class->new(@_); } if (ref($time)) { $time->[c_epoch] = undef; return wantarray ? @$time : bless [@$time, $islocal], $class; } my @time = $islocal ? CORE::localtime($time) : CORE::gmtime($time); wantarray ? @time : bless [@time, $time, $islocal], $class; }