in reply to Python regex faster than Perl?

Hmmm...

#!/usr/bin/perl use strict; # https://perlmonks.org/?node_id=11164441 use warnings; use Time::HiRes qw( time ); my $input = 'foobarmul(123,456)' x 3e6; my $start; $start = time; my $count1 = () = $input =~ /mul\(\d{1,3},\d{1,3}\)/g; printf " list context count1 %d time %.3f\n", $count1, time - $star +t; $start = time; my $count2 = 0; ++$count2 while $input =~ /mul\(\d{1,3},\d{1,3}\)/g; printf "scalar context count2 %d time %.3f\n", $count2, time - $star +t;

Outputs:

list context count1 3000000 time 1.025 scalar context count2 3000000 time 0.860

Replies are listed 'Best First'.
Re^2: Python regex faster than Perl?
by choroba (Cardinal) on Mar 26, 2025 at 19:20 UTC
    True, but still slower than python :-(
    python Found 200013 matches. real 0m0.515s user 0m0.475s sys 0m0.040s perl orig Found 200013 matches. real 0m0.725s user 0m0.681s sys 0m0.044s perl line by line Found 200013 matches. real 0m0.906s user 0m0.874s sys 0m0.032s perl tybalt Found 200013 matches. real 0m0.611s user 0m0.583s sys 0m0.028s
    map{substr$_->[0],$_->[1]||0,1}[\*||{},3],[[]],[ref qr-1,-,-1],[{}],[sub{}^*ARGV,3]