package Data::FormValidator::Constraints::Common; use 5.005; use strict; require Exporter; use vars qw($VERSION @ISA @EXPORT @EXPORT_OK %EXPORT_TAGS); @ISA = qw(Exporter); $VERSION = '0.01'; BEGIN { @EXPORT = &_build_exports_from_regexp_common; use Symbol; use Regexp::Common 'RE_ALL'; sub _build_exports_from_regexp_common { my @exports; my $package_ref = qualify_to_ref('Regexp::Common::'); my @subs = grep(/^RE_/, keys(%{*{$package_ref}})); foreach my $sub (@subs) { my $dfv_name = 'match_'.$sub; print $dfv_name; *$dfv_name = sub { my $val = shift; no strict 'refs'; my $re = &$sub(-keep); return ($val =~ $re) ? $1 : undef; }; push @exports, '&'.$dfv_name; } return @exports; } } 1;