Benchmark: timing 150000 iterations of match, silly, substr, unpack... match: 4 wallclock secs ( 2.78 usr + 0.01 sys = 2.79 CPU) @ 53763.44/s (n=150000) silly: -1 wallclock secs ( 0.26 usr + -0.10 sys = 0.16 CPU) @ 937500.00/s (n=150000) (warning: too few iterations for a reliable count) substr: 0 wallclock secs ( 0.48 usr + 0.00 sys = 0.48 CPU) @ 312500.00/s (n=150000) unpack: 2 wallclock secs ( 1.41 usr + 0.11 sys = 1.52 CPU) @ 98684.21/s (n=150000)