NAME
Regexp::Box - store and retrieve regexp via names
SYNOPSIS
$rebox = Regexp::Box->new( name => 'name of the box' );
$rebox->register( 'category/id', 0, qr/\w/, 'description' );
$rebox->register( 'category/id2', 0, 
  
  sub { '\w' x 3 }, 
  sub { sprintf 'description of %s', $_[0] } 
);
unless( $_ =~ $rebox->request( 'category/id', 'regexp' ) )
{
  warn "Expected ", $rebox->request( 'category/id', 'desc' );
}
DESCRIPTION
Store and retrieve regexp via names and serve them application wide. My favorite Regexp::Common was somehow to complicated with that particular issue.
METHODS
$rebox = Regexp::Box->new( name => 'name of the box' )
Just give the box a name. Helps when multiple box's have to be handled.
$rebox->register( $id, $exact, $regexp, $desc )
Register a regexp. All arguments are required. The $id should contain a category path ( i.e. 'net/uri' ). It is used when later retrieved with $rebox->request. The $exact is a boolean field that defines if the regexp gets wrapped with '^$' (see $rebox->exact below). One could use closure/function-pointers as $regexp or $desc if some run-time construction would be required (Some flexible Regexp::Common regexp's require that for argument passing. Here some examples:
$rebox->register( 'category/id', 0, qr//, 'description' );
$rebox->register( 'category/id', 0, sub { }, sub { 'description' } );
$rebox->register(
  'std/uri', 
  1, 
  sub { $Regexp::Box::RE{URI}{HTTP}{ -scheme => $_[1] || 'HTTP' } }, 
  sub { sprintf "an uri (default: %s)",  $_[1] || 'HTTP' } 
);
$field = $rebox->request( $id, $field_name )
Currently 'regexp', 'desc' and 'created', 'exact' as $field_name.
$rebox->request( 'net/email', 'desc' );
Returns the desc field of the 'net/email' regexp.
@ids = $rebox->request();
Returns array of $id of all registered regexps.
$rebox->exact
Wraps a regex internally into '^$'. May be overloaded if its too stupid.
$Regexp::Box::RE
Regexp::Common is heavily used and one could access it via $Regexp::Box::RE without loading it redundantly.
<& /maslib/delayed.mas, comp => '/maslib/signatures.mas:author_as_pod' &>
1 POD Error
The following errors were encountered while parsing the POD:
- Around line 309:
 =back without =over