[lexicon]$ perl bench.pl 10 1000000 A = 10 B = 1000000 Benchmark: timing 10 iterations of 1 Nothing , 2 Square , 3 Array , 4 Hash , 5 Sub (Ref), 6 Sub (Val)... 1 Nothing : 35 wallclock secs (29.99 usr + 0.10 sys = 30.09 CPU) 2 Square : 58 wallclock secs (48.79 usr + 0.23 sys = 49.02 CPU) 3 Array : 63 wallclock secs (54.49 usr + 0.20 sys = 54.69 CPU) 4 Hash : 184 wallclock secs (156.99 usr + 0.60 sys = 157.59 CPU) 5 Sub (Ref): 388 wallclock secs (327.87 usr + 1.30 sys = 329.17 CPU) 6 Sub (Val): 312 wallclock secs (266.54 usr + 1.02 sys = 267.56 CPU)