Path-Iterator-Rule
view release on metacpan or search on metacpan
lib/Path/Iterator/Rule.pm view on Meta::CPAN
use strict;
use warnings;
package Path::Iterator::Rule;
# ABSTRACT: Iterative, recursive file finder
our $VERSION = '1.015';
# Register warnings category
use warnings::register;
use if $] ge '5.010000', 're', 'regexp_pattern';
# Dependencies
use Carp ();
use File::Basename ();
use File::Spec ();
use List::Util ();
use Number::Compare 0.02;
use Scalar::Util ();
use Text::Glob ();
use Try::Tiny;
lib/Path/Iterator/Rule.pm view on Meta::CPAN
$add ||= '';
my $new = ref($re) eq 'Regexp' ? $re : Text::Glob::glob_to_regex($re);
return $new unless $add;
my ( $pattern, $flags ) = _split_re($new);
my $new_flags = $add ? _reflag( $flags, $add ) : "";
return qr/$new_flags$pattern/;
}
sub _split_re {
my $value = shift;
if ( $] ge 5.010 ) {
return re::regexp_pattern($value);
}
else {
$value =~ s/^\(\?\^?//;
$value =~ s/\)$//;
my ( $opt, $re ) = split( /:/, $value, 2 );
$opt =~ s/\-\w+$//;
return ( $re, $opt );
}
}
( run in 0.541 second using v1.01-cache-2.11-cpan-cc502c75498 )