Regexp-Optimizer
view release on metacpan or search on metacpan
lib/Regexp/Optimizer.pm view on Meta::CPAN
sub new {
my $class = shift;
bless {@_}, $class;
}
sub _assemble {
my $str = shift;
return $str if $str !~ $re_optimize;
if ( $str !~ m/[(]/ms ) {
my $ra = Regexp::Assemble->new();
$ra->add( split m{[|]}, $str );
return $ra->as_string;
}
$str =~ s{$re_nested}{
no warnings 'uninitialized';
my $sub = $1;
if ($sub =~ m/\A\?(?:[\?\{\(PR]|[\+\-]?[0-9])/ms) {
"($sub)"; # (?{CODE}) and like ruled out
}else{
my $mod = ($sub =~ s/\A\?//) ? '?' : '';
if ($mod) {
( run in 0.813 second using v1.01-cache-2.11-cpan-5511b514fd6 )