barachiel@dreckskind:~$ perl -mBenchmark Benchmark::timethese(10000000, { 'substr' => sub { substr("hanspeter", 0, 1); }, 'regex' => sub { "hanspeter" =~ m/^(.)/; } }); ^D Benchmark: timing 10000000 iterations of regex, substr... regex: 7 wallclock secs ( 5.27 usr + 0.03 sys = 5.30 CPU) @ 1886792.45/s (n=10000000) substr: 2 wallclock secs ( 1.81 usr + 0.00 sys = 1.81 CPU) @ 5524861.88/s (n=10000000)