my $s = join "", map chr(ord('a') + int rand 26), 1 .. 200; cmpthese(-3, { eertree => sub { 'String::Eertree'->new(string => $s)->uniq_palindromes }, rosetta_new => sub { rosetta_fixed($s) }, ee => sub { ee($s) }, }); Rate rosetta_new eertree ee rosetta_new 271/s -- -58% -93% eertree 651/s 140% -- -84% ee 3964/s 1362% 509% --