use strict; use warnings; use Benchmark qw(:all); #banging on the keyboard my $target_string = 'al;nsdfj;oasmfdio;asdfoasdjfm;mioasfdsjdo;fijso;adfjmio;sadjfmos;adfmjosia;mdfjiosad'; Benchmark::cmpthese ( 1000000, { 'substituteStar' => sub { $_ = $target_string; s/[abc]*//g; } , 'substituteNoStar' => sub { $_ = $target_string; s/[abc]//g; } , 'substitutePlus' => sub { $_ = $target_string; s/[abc]+//g; } , 'trAbc' => sub { $_ = $target_string; tr/abc//d; } } ) #### Rate substituteStar substituteNoStar substitutePlus trAbc substituteStar 29935/s -- -85% -85% -95% substituteNoStar 195733/s 554% -- -1% -69% substitutePlus 196928/s 558% 1% -- -68% trAbc 621504/s 1976% 218% 216% --