in reply to Re^4: "require Carp" may be hazardous to your code (assume)
in thread "require Carp" may be hazardous to your code

Congratulations on your broken benchmark:

> perl -MTime::HiRes -le"print $INC{'Carp.pm'}" .../Carp.pm

Note that you also didn't address that this practice predates the factorying out of the "heavy" parts.

- tye        

Replies are listed 'Best First'.
Re^6: "require Carp" may be hazardous to your code (assume)
by ikegami (Patriarch) on Dec 05, 2006 at 21:17 UTC

    Nice catch. I thought it was a bit fast...

    Without heavy bits: 1.34 ms

    >perl -le "$t1=time; for (1..$ARGV[0]) { delete $INC{'Carp.pm'}; requi +re Carp; } $t2=time; print(($t2-$t1)/$ARGV[0])" 100000 0.00134 >perl -le "$t1=time; for (1..$ARGV[0]) { delete $INC{'Carp.pm'}; requi +re Carp; } $t2=time; print(($t2-$t1)/$ARGV[0])" 100000 0.00134 >perl -le "$t1=time; for (1..$ARGV[0]) { delete $INC{'Carp.pm'}; requi +re Carp; } $t2=time; print(($t2-$t1)/$ARGV[0])" 100000 0.00134

    With heavy bits: 4.75 ms

    >perl -le "$t1=time; for (1..$ARGV[0]) { delete $INC{'Carp.pm'}; delet +e $INC{'Carp/Heavy.pm'}; require Carp; require Carp::Heavy; } $t2=tim +e; print(($t2-$t1)/$ARGV[0])" 100000 0.00475 >perl -le "$t1=time; for (1..$ARGV[0]) { delete $INC{'Carp.pm'}; delet +e $INC{'Carp/Heavy.pm'}; require Carp; require Carp::Heavy; } $t2=tim +e; print(($t2-$t1)/$ARGV[0])" 100000 0.00474