The implementation of the 'NO_TIME_HIRES' is flawed. The problem is
that the code for the module is executed (i.e., if (!$NO_TIME_HIRES)
{...}) before the import() function is called. Would it work to move
the if block inside import():
sub import {
my $pkg = shift;
my @sym;
for my $sym (@_) {
if ($sym eq 'NO_TIME_HIRES') {
$NO_TIME_HIRES = 1;
} else {
push @sym, $sym;
print("$sym\n");
}
}
if (!$NO_TIME_HIRES) {
eval { require Time::HiRes; };
if ($@ =~ /^Can\'t locate Time/) {
# OK, just continue
} elsif ($@) {
die if $@;
} else {
cache_time_api(); # hook in high precision time
}
}
$pkg->export_to_level(1, undef, @sym);
}
=====
Jerry D. Hedden
<< If you're not having fun, then you're not doing it right! >>