PPR

 view release on metacpan or  search on metacpan

bin/gen_builtin_expr.pl  view on Meta::CPAN

#! /usr/bin/env perl

use 5.022;
use warnings;
use experimentals;
use Regexp::Optimizer;

my @builtins;
my $builtins_regex  = join '|', reverse sort @builtins;
   $builtins_regex  = qr{$builtins_regex};
my $optimized_regex = Regexp::Optimizer->new->optimize($builtins_regex);

say $optimized_regex;

#use Benchmark qw( cmpthese );
#
#say $];
#cmpthese 100000, {
#     std => sub { for (@builtins) { m/$builtins_regex/ or die } },
#     opt => sub { for (@builtins) { m/$optimized_regex/ or die } },
#};


BEGIN {
    @builtins = (
           'abs',
           'accept',
           'alarm',
           'atan2',
           'bind',
           'binmode',
           'bless',
           'break',
           'caller',
           'chdir',
           'chmod',
           'chomp',
           'chop',
           'chown',
           'chr',
           'chroot',
           'close',
           'closedir',
           'connect',
           'continue',
           'cos',
           'crypt',
           'dbmclose',
           'dbmopen',
#          'default',
           'defined',
           'delete',
           'die',
           'do',
           'dump',
           'each',
           'endgrent',
           'endhostent',
           'endnetent',
           'endprotoent',
           'endpwent',
           'endservent',
           'eof',
           'eval',
           'evalbytes',
           'exec',
           'exists',
           'exit',
           'exp',
           'fc',
           'fcntl',
           'fileno',
           'flock',
           'fork',
           'format',
           'formline',
           'getc',
           'getgrent',
           'getgrgid',
           'getgrnam',
           'gethostbyaddr',
           'gethostbyname',
           'gethostent',
           'getlogin',
           'getnetbyaddr',
           'getnetbyname',
           'getnetent',
           'getpeername',
           'getpgrp',
           'getppid',
           'getpriority',
           'getprotobyname',
           'getprotobynumber',
           'getprotoent',
           'getpwent',
           'getpwnam',
           'getpwuid',
           'getservbyname',
           'getservbyport',



( run in 1.428 second using v1.01-cache-2.11-cpan-71847e10f99 )