use strict; use Benchmark; my @convert; for(0..10000){ $convert[$_] = '0' x (4 - length$_) . $_ } my ($val1,$val2) = (int rand(10000),int rand(10000)); timethese 2_000_000 => { array => sub { @convert[$val1,$val2] }, nobull => sub { $val1 * 10000 + $val2 } } #where connectm can be #sub connectm { # my ($val1,$val2) = @_; # @convert[$val1,$val2] #} __END__ Benchmark: timing 2000000 iterations of array, nobull... array: 2 wallclock secs ( 0.78 usr + 0.00 sys = 0.78 CPU) @ 2557544.76/s (n=2000000) nobull: 1 wallclock secs ( 0.52 usr + 0.00 sys = 0.52 CPU) @ 3883495.15/s (n=2000000)