#! /usr/local/bin/perl -l package P; sub new { my $class = shift; my $mod = shift; eval "use $mod ()"; my $self = {}; if ($@) { $self->{_time_func} = sub { time }; } else { $self->{_time_func} = sub { Time::HiRes::time() }; } return bless $self, 'P' } package main; my $p = P->new( shift || 'Time::HiRes' ); print $p->{_time_func}->(); sleep 2; print $p->{_time_func}->();