Acme-VerySign
view release on metacpan or search on metacpan
lib/Acme/VerySign.pm view on Meta::CPAN
my %param;
my %CONF;
%param = @_ if @_;
my %defaults = (xform => 'Text::Soundex',
match => 'String::Equal',
choose => 'Random');
# Work out which transformer(s) to use. The valid options are:
# 1/ $param{xform} doesn't exist. Use default transformer.
# 2/ $param{xform} is undef. Use no transformers.
# 3/ $param{xform} is a reference to a subroutine. Use the
# referenced subroutine as the transformer.
# 4/ $param{xform} is a scalar. This is the name of a transformer
# module which should be loaded.
# 5/ $param{xform} is a reference to an array. Each element of the
# array is one of the previous two options.
if (exists $param{xform}) {
if (defined $param{xform}) {
my $type = ref $param{xform};
lib/Acme/VerySign.pm view on Meta::CPAN
$CONF{xform} = [];
}
} else {
my $mod = "Symbol::Approx::Sub::$defaults{xform}";
require(_pkg2file($mod));
$CONF{xform} = [\&{"${mod}::transform"}];
}
# Work out which matcher to use. The valid options are:
# 1/ $param{match} doesn't exist. Use default matcher.
# 2/ $param{match} is undef. Use no matcher.
# 3/ $param{match} is a reference to a subroutine. Use the
# referenced subroutine as the matcher.
# 4/ $param{match} is a scalar. This is the name of a matcher
# module which should be loaded.
if (exists $param{match}) {
if (defined $param{match}) {
my $type = ref $param{match};
if ($type eq 'CODE') {
$CONF{match} = $param{match};
} elsif ($type eq '') {
my $mod = "Symbol::Approx::Sub::$param{match}";
require(_pkg2file($mod));
$CONF{match} = \&{"${mod}::match"};
} else {
croak 'Invalid matcher passed to Symbol::Approx::Sub';
}
} else {
$CONF{match} = undef;
}
} else {
my $mod = "Symbol::Approx::Sub::$defaults{match}";
require(_pkg2file($mod));
$CONF{match} = \&{"${mod}::match"};
}
####################################################################
( run in 1.024 second using v1.01-cache-2.11-cpan-d80b1682f3f )