#! perl -slw use strict; use re 'eval'; #! <<< ADD THIS LINE use My::Filter; my ($short_line_threshold, $short_line_counter, $long_line_threshold) = (40,2,50); my $data = q[ xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ]; my $tmp; for (1..1000) { $tmp = $data; $tmp =~ s/((?:\s*(?:.{1,$short_line_threshold})<\/line>\s*){$short_line_counter,})(\s*(?:.{$long_line_threshold,}?)<\/line>)/$1<\/para>$2/gs; } print $tmp; print '=' x 20, 'Timing of regexs in ', $0, '=' x 20; print My::Filter::report(); __END__ C:\test>testmyfilter xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ====================Timing of regexs in C:\test\testMyFilter.pl==================== 2000 trials of ((?:\s*(?:.{1,$short_line_threshold})\s*){$short_line_counter,})(\s*(?:.{$long_line_threshold,}?)< /line>) (460.000ms total), 230us/trial