Running this results in:#!/usr/bin/perl use strict; use warnings 'all'; use Benchmark; use vars qw /$ip_v $ip_re @data/; my $quad_v = q '(?:25[0-5]|2[0-4]\d|1\d\d|\d\d?)'; my $quad_re = qr '(?:25[0-5]|2[0-4]\d|1\d\d|\d\d?)'; my $sep_v = q '\.'; my $sep_re = qr '\.'; $ip_v = qq "$quad_v$sep_v$quad_v$sep_v$quad_v$sep_v$quad_v"; + $ip_re = qr "$quad_re$sep_re$quad_re$sep_re$quad_re$sep_re$quad_ +re"; @data = map {join "." => map {int rand 1000} 1 .. 4} 1 .. 1_000; timethese -5 => { var => 'for (@data) {/$ip_v/}', re => 'for (@data) {/$ip_re/}', }; __END__
Benchmark: running re, var for at least 5 CPU seconds...
re: 5 wallclock secs ( 5.25 usr + 0.00 sys = 5.25 CPU) @ 46.10/s (n=242)
var: 5 wallclock secs ( 5.16 usr + 0.00 sys = 5.16 CPU) @ 45.93/s (n=237)
Not what I call a significant win for compiled regular expressions.
Perhaps you have examples where the gain is large - I've yet
to encounter them.
Abigail
In reply to Re: RegEx Perl Code
by Abigail-II
in thread RegEx Perl Code
by Jaspersan
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |