91 lines
2.0 KiB
Perl
91 lines
2.0 KiB
Perl
package File::Glob;
|
|
|
|
use strict;
|
|
our($VERSION, @ISA, @EXPORT_OK, @EXPORT_FAIL, %EXPORT_TAGS, $DEFAULT_FLAGS);
|
|
|
|
require XSLoader;
|
|
|
|
@ISA = qw(Exporter);
|
|
|
|
# NOTE: The glob() export is only here for compatibility with 5.6.0.
|
|
# csh_glob() should not be used directly, unless you know what you're doing.
|
|
|
|
%EXPORT_TAGS = (
|
|
'glob' => [ qw(
|
|
GLOB_ABEND
|
|
GLOB_ALPHASORT
|
|
GLOB_ALTDIRFUNC
|
|
GLOB_BRACE
|
|
GLOB_CSH
|
|
GLOB_ERR
|
|
GLOB_ERROR
|
|
GLOB_LIMIT
|
|
GLOB_MARK
|
|
GLOB_NOCASE
|
|
GLOB_NOCHECK
|
|
GLOB_NOMAGIC
|
|
GLOB_NOSORT
|
|
GLOB_NOSPACE
|
|
GLOB_QUOTE
|
|
GLOB_TILDE
|
|
bsd_glob
|
|
glob
|
|
) ],
|
|
);
|
|
$EXPORT_TAGS{bsd_glob} = [@{$EXPORT_TAGS{glob}}];
|
|
pop @{$EXPORT_TAGS{bsd_glob}}; # no "glob"
|
|
|
|
@EXPORT_OK = (@{$EXPORT_TAGS{'glob'}}, 'csh_glob');
|
|
|
|
$VERSION = '1.28';
|
|
|
|
sub import {
|
|
require Exporter;
|
|
local $Exporter::ExportLevel = $Exporter::ExportLevel + 1;
|
|
Exporter::import(grep {
|
|
my $passthrough;
|
|
if ($_ eq ':case') {
|
|
$DEFAULT_FLAGS &= ~GLOB_NOCASE()
|
|
}
|
|
elsif ($_ eq ':nocase') {
|
|
$DEFAULT_FLAGS |= GLOB_NOCASE();
|
|
}
|
|
elsif ($_ eq ':globally') {
|
|
no warnings 'redefine';
|
|
*CORE::GLOBAL::glob = \&File::Glob::csh_glob;
|
|
}
|
|
elsif ($_ eq ':bsd_glob') {
|
|
no strict; *{caller."::glob"} = \&bsd_glob_override;
|
|
$passthrough = 1;
|
|
}
|
|
else {
|
|
$passthrough = 1;
|
|
}
|
|
$passthrough;
|
|
} @_);
|
|
}
|
|
|
|
XSLoader::load();
|
|
|
|
$DEFAULT_FLAGS = GLOB_CSH();
|
|
if ($^O =~ /^(?:MSWin32|VMS|os2|dos|riscos)$/) {
|
|
$DEFAULT_FLAGS |= GLOB_NOCASE();
|
|
}
|
|
|
|
# File::Glob::glob() is deprecated because its prototype is different from
|
|
# CORE::glob() (use bsd_glob() instead)
|
|
sub glob {
|
|
use 5.024;
|
|
use warnings ();
|
|
warnings::warnif (deprecated =>
|
|
"File::Glob::glob() will disappear in perl 5.30. " .
|
|
"Use File::Glob::bsd_glob() instead.") unless state $warned ++;
|
|
|
|
splice @_, 1; # no flags
|
|
goto &bsd_glob;
|
|
}
|
|
|
|
1;
|
|
__END__
|
|
|