Path-Iterator-Rule
view release on metacpan or search on metacpan
lib/Path/Iterator/Rule.pm view on Meta::CPAN
2345678910111213141516171819202122use
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
458459460461462463464465466467468469470471472473474475476477478
$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 1.352 second using v1.01-cache-2.11-cpan-55f5a4728d2 )