The sub(s) will take parameters. One sub per module in the distribution. Here's the real code section of the new module. I've only added one module's sub so far:
package Test::BrewBuild::Regex; use strict; use warnings; use Carp qw(croak); use Exporter qw(import); our $VERSION = '2.20'; our @EXPORT = qw( re_brewbuild ); my %brewbuild = ( check_failed => qr{ failed.*?See\s+(.*?)\s+for details }x, check_result => qr{ [Pp]erl-\d\.\d+\.\d+(?:_\w+)? \s+===.*? (?=(?:[Pp]erl-\d\.\d+\.\d+(?:_\w+)?\s+===|$)) }xs, extract_dist_name => qr{ ^name\s+=\s+(.*)$ }x, extract_dist_version => qr{ ^version\s+=\s+(.*)$ }x, extract_errors => qr{ cpanm\s+\(App::cpanminus\) .*? (?=(?:cpanm\s+\(App::cpanminus\)|$)) }xs, extract_error_perl_ver => qr{ cpanm.*?perl\s(5\.\d+)\s }x, extract_result => qr{ ([Pp]erl-\d\.\d+\.\d+(?:_\w+)?\s+=+?) (\s+.*?) (?=(?:[Pp]erl-\d\.\d+\.\d+(?:_\w+)?\s+===|$)) }xs, extract_perl_version => qr{ ^([Pp]erl-\d\.\d+\.\d+(_\d{2})?) }x, ); sub re_brewbuild { my $re = shift; _check(\%brewbuild, $re); return $brewbuild{$re}; } sub _check { my ($module, $re) = @_; croak "regex '$re' doesn't exist for re_brewbuild()" if ! exists $module->{$re}; } 1;
In reply to Re^2: Use function as a regex
by stevieb
in thread Use function as a regex
by stevieb
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |