File-Glob-Windows
view release on metacpan or search on metacpan
lib/File/Glob/Windows.pm view on Meta::CPAN
$path =~s!^([^:]+:|\\\\[^\\]+)!! and $top .=$1;
$path =~s!^([\\/]+)!! and $top .='\\';
$top= Encode::encode($enc,$top);
($path eq '') and return ($top);
# split path and convert wildcard to regex
my @node;
my $re1 = Encode::encode($enc,'.*?');
my $re2 = Encode::encode($enc,'.');
if($nocase and not %alpha){ $alpha{$_}=1 for 'A'..'Z','a'..'z';}
for my $t (split m![\\/]+!,$path){
next if $t eq '';
if( not $t =~ /[*?]/ ){ push @node,Encode::encode($enc,$t); next; }
my $r='';
if($nocase){
for(split /([*?A-Za-z])/,$t){
next if $_ eq '';
if($_ eq '*' ){ $r.=$re1 }
elsif($_ eq '?' ){ $r.=$re2 }
elsif($alpha{$_} ){ $r.=Encode::encode($enc,'['.uc($_).lc($_).']') }
else{ $r .= quotemeta(Encode::encode($enc,$_)) }
( run in 1.834 second using v1.01-cache-2.11-cpan-71847e10f99 )