my $input = join ' ', (1) x 1_001, ('+') x 1_000; cmpthese( 100, { recursive => sub { $input1 =~ $RPN1 }, iterative => sub { $input2 =~ $RPN2 }, }, ); s/iter recursive flat recursive 1.35 -- -99% iterative 1.47e-02 9103% --