use warnings; use strict; use Benchmark qw(timethese); use Module::Load; BEGIN { timethese( 1000000000, { my_use => sub { use Data::Dumper; }, my_check => sub { load Data::Dumper if ! $Data::Dumper::VERSION; } } ); } #### perl bench_use.pl Benchmark: timing 1000000000 iterations of my_check, my_use... my_check: 24 wallclock secs (27.21 usr + -0.09 sys = 27.12 CPU) @ 36873156.34/s (n=1000000000) my_use: -3 wallclock secs ( 0.92 usr + 0.33 sys = 1.25 CPU) @ 800000000.00/s (n=1000000000)