use Benchmark; @base=qw/one two three four five six seven/; timethese(1_000_000,{ '$'=>sub {($s1,$s2,$s3,$s4,$s5,$s6,$s7)=@base;}, '@'=>sub{@s=@base;} }); __END__ Benchmark: timing 1000000 iterations of $, @... $: 3 wallclock secs ( 2.86 usr + 0.00 sys = 2.86 CPU) @ 349650.35/s (n=1000000) @: 11 wallclock secs (10.16 usr + 0.00 sys = 10.16 CPU) @ 98425.20/s ( n=1000000)