App-hr
view release on metacpan or search on metacpan
#
#@plural{@no_change} = @no_change;
#
## A store of words which look like plurals but are not.
#
## References:
#
## http://wiki.answers.com/Q/What_are_some_examples_of_singular_nouns_ending_in_S
## http://virtuallinguist.typepad.com/the_virtual_linguist/2009/10/singular-nouns-ending-in-s.html
#
#my @not_plural = (qw/
#Aries
#Charles
#Gonzales
#Hades
#Hercules
#Hermes
#Holmes
#Hughes
#Ives
#Jacques
#stylus
#themselves
#this
#thus
#various
#yes
#nucleus
#synchronous
#/);
#
#my %not_plural;
#
#@not_plural{@not_plural} = (1) x @not_plural;
#
## A store of words which end in "oe" and whose plural ends in "oes".
#
## References
## http://www.scrabblefinder.com/ends-with/oe/
#
## Also used
#
## perl -n -e 'print if /oe$/' < /usr/share/dict/words
#
# scaloppini => 'scaloppine'
#);
#
## See documentation below.
#
#sub to_singular
#{
# my ($word) = @_;
# # The return value.
# my $singular = $word;
# if (! $not_plural{$word}) {
# # The word is not in the list of exceptions.
# if ($plural{$word}) {
# # The word has an irregular plural, like "children", or
# # "geese", so look up the singular in the table.
# $singular = $plural{$word};
# }
# elsif ($word =~ /s$/) {
# # The word ends in "s".
# if ($word =~ /'s$/) {
# # report's, etc.
# my $opt_dotglob = $opts->{dotglob} // 0;
# my $opt_globstar = $opts->{globstar} // 0;
# my $opt_ps = $opts->{path_separator} // '/';
#
# die "Please use a single character for path_separator" unless length($opt_ps) == 1;
# my $q_ps =
# $opt_ps eq '-' ? "\\-" :
# $opt_ps eq '/' ? '/' :
# quotemeta($opt_ps);
#
# my $re_not_ps = "[^$q_ps]";
# my $re_not_dot = "[^.]";
# my $re_not_dot_or_ps = "[^.$q_ps]";
#
# my @res;
# my $p;
# my $after_pathsep;
# while ($str =~ /$RE_WILDCARD_BASH/g) {
# my %m = %+;
# if (defined($p = $m{bash_brace_content})) {
# push @res, quotemeta($m{slashes_before_bash_brace}) if
# $m{slashes_before_bash_brace};
# if ($opt_brace) {
# }, $_)} @elems), ")";
# } else {
# push @res, quotemeta($m{bash_brace});
# }
#
# } elsif (defined($p = $m{bash_joker})) {
# if ($p eq '?') {
# push @res, '.';
# } elsif ($p eq '*' || $p eq '**' && !$opt_globstar) {
# push @res, $opt_dotglob || (@res && !$after_pathsep) ?
# "$re_not_ps*" : "$re_not_dot_or_ps$re_not_ps*";
# } elsif ($p eq '**') { # and with 'globstar' option set
# if ($opt_dotglob) {
# push @res, '.*';
# } elsif (@res && !$after_pathsep) {
# push @res, "(?:$re_not_ps*)(?:$q_ps+$re_not_dot_or_ps$re_not_ps*)*";
# } else {
# push @res, "(?:$re_not_dot_or_ps$re_not_ps*)(?:$q_ps+$re_not_dot_or_ps$re_not_ps*)*";
# }
# }
#
# } elsif (defined($p = $m{literal_brace_single_element})) {
# push @res, quotemeta($p);
# } elsif (defined($p = $m{bash_class})) {
# # XXX no need to escape some characters?
# push @res, $p;
# } elsif (defined($p = $m{sql_joker})) {
# push @res, quotemeta($p);
( run in 0.227 second using v1.01-cache-2.11-cpan-94b05bcf43c )