App-PickRandomLines
view release on metacpan or search on metacpan
script/_pick-random-lines view on Meta::CPAN
# return 1 if $m{bash_joker} && $m{bash_joker} eq '*';
# }
# 0;
#}
#
#sub contains_globstar_wildcard {
# my $str = shift;
#
# while ($str =~ /$RE_WILDCARD_BASH/go) {
# my %m = %+;
# return 1 if $m{bash_joker} && $m{bash_joker} eq '**';
# }
# 0;
#}
#
#sub convert_wildcard_to_sql {
# my $opts = ref $_[0] eq 'HASH' ? shift : {};
# my $str = shift;
#
# my @res;
# my $p;
# while ($str =~ /$RE_WILDCARD_BASH/g) {
# my %m = %+;
# if (defined($p = $m{bash_brace_content})) {
# die "Cannot convert brace pattern '$p' to SQL";
# } elsif ($p = $m{bash_joker}) {
# if ($m{bash_joker} eq '*' || $m{bash_joker} eq '**') {
# push @res, "%";
# } else {
# push @res, "_";
# }
# } elsif ($p = $m{sql_joker}) {
# push @res, "\\$p";
# } elsif (defined($p = $m{literal_brace_single_element})) {
# die "Currently cannot convert brace literal '$p' to SQL";
# } elsif (defined($p = $m{bash_class})) {
# die "Currently cannot convert class pattern '$p' to SQL";
# } elsif (defined($p = $m{literal})) {
# push @res, $p;
# }
# }
#
# join "", @res;
#}
#
#sub convert_wildcard_to_re {
# my $opts = ref $_[0] eq 'HASH' ? shift : {};
# my $str = shift;
#
# my $opt_brace = $opts->{brace} // 1;
# 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) {
# my @elems;
# while ($p =~ /($re_bash_brace_element)(,|\z)/g) {
# push @elems, $1;
# last unless $2;
# }
# #use DD; dd \@elems;
# push @res, "(?:", join("|", map {
# convert_wildcard_to_re({
# brace => 0,
# dotglob => $opt_dotglob,
# globstar => $opt_globstar,
# }, $_)} @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);
# } elsif (defined($p = $m{literal})) {
# push @res, quotemeta($p);
# }
#
# $after_pathsep = defined($m{literal}) && substr($m{literal}, -1) eq $opt_ps;
# }
#
# join "", @res;
#}
#
#1;
## ABSTRACT: Bash wildcard string routines
#
#__END__
#
#=pod
#
#=encoding UTF-8
#
#=head1 NAME
#
#String::Wildcard::Bash - Bash wildcard string routines
#
#=head1 VERSION
#
#This document describes version 0.045 of String::Wildcard::Bash (from Perl distribution String-Wildcard-Bash), released on 2022-08-12.
#
#=head1 SYNOPSIS
#
# use String::Wildcard::Bash qw(
# $RE_WILDCARD_BASH
#
# contains_wildcard
# contains_brace_wildcard
# contains_class_wildcard
# contains_joker_wildcard
# contains_qmark_wildcard
# contains_glob_wildcard
# contains_globstar_wildcard
#
# convert_wildcard_to_sql
# convert_wildcard_to_re
# );
#
# say 1 if contains_wildcard("")); # ->
# say 1 if contains_wildcard("ab*")); # -> 1
# say 1 if contains_wildcard("ab\\*")); # ->
#
# say 1 if contains_glob_wildcard("ab*")); # -> 1
# say 1 if contains_glob_wildcard("ab?")); # ->
( run in 0.608 second using v1.01-cache-2.11-cpan-39bf76dae61 )