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;
|