in reply to USE, but fail nicely

You do want eval, but not quite like that; unless you put the use into a string, it'll still get run at compile-time and will die anyway. You want:
eval "use Time::HiRes qw(time)"; die "Nice message: $@" if $@;