A = 10 B = 1000000 Benchmark: timing 10 iterations of 1 Nothing , 2 Mult , 3 Array , 4 Hash , 5 Sub (Ref), 6 Sub (Val)... 1 Nothing : 30 secs (28.53 usr 0.03 sys = 28.56 cpu) 2 Mult : 63 secs (49.93 usr 0.07 sys = 50.00 cpu) 3 Array : 42 secs (37.05 usr 0.04 sys = 37.09 cpu) 4 Hash : 99 secs (95.28 usr 0.09 sys = 95.37 cpu) 5 Sub (Ref): 127 secs (117.77 usr 0.09 sys = 117.86 cpu) 6 Sub (Val): 98 secs (93.28 usr 0.11 sys = 93.39 cpu)