129 lines
2.3 KiB
Perl
129 lines
2.3 KiB
Perl
package File::Spec::Functions;
|
|
|
|
use File::Spec;
|
|
use strict;
|
|
|
|
our $VERSION = '3.78';
|
|
$VERSION =~ tr/_//d;
|
|
|
|
require Exporter;
|
|
|
|
our @ISA = qw(Exporter);
|
|
|
|
our @EXPORT = qw(
|
|
canonpath
|
|
catdir
|
|
catfile
|
|
curdir
|
|
rootdir
|
|
updir
|
|
no_upwards
|
|
file_name_is_absolute
|
|
path
|
|
);
|
|
|
|
our @EXPORT_OK = qw(
|
|
devnull
|
|
tmpdir
|
|
splitpath
|
|
splitdir
|
|
catpath
|
|
abs2rel
|
|
rel2abs
|
|
case_tolerant
|
|
);
|
|
|
|
our %EXPORT_TAGS = ( ALL => [ @EXPORT_OK, @EXPORT ] );
|
|
|
|
require File::Spec::Unix;
|
|
my %udeps = (
|
|
canonpath => [],
|
|
catdir => [qw(canonpath)],
|
|
catfile => [qw(canonpath catdir)],
|
|
case_tolerant => [],
|
|
curdir => [],
|
|
devnull => [],
|
|
rootdir => [],
|
|
updir => [],
|
|
);
|
|
|
|
foreach my $meth (@EXPORT, @EXPORT_OK) {
|
|
my $sub = File::Spec->can($meth);
|
|
no strict 'refs';
|
|
if (exists($udeps{$meth}) && $sub == File::Spec::Unix->can($meth) &&
|
|
!(grep {
|
|
File::Spec->can($_) != File::Spec::Unix->can($_)
|
|
} @{$udeps{$meth}}) &&
|
|
defined(&{"File::Spec::Unix::_fn_$meth"})) {
|
|
*{$meth} = \&{"File::Spec::Unix::_fn_$meth"};
|
|
} else {
|
|
*{$meth} = sub {&$sub('File::Spec', @_)};
|
|
}
|
|
}
|
|
|
|
|
|
1;
|
|
__END__
|
|
|
|
=head1 NAME
|
|
|
|
File::Spec::Functions - portably perform operations on file names
|
|
|
|
=head1 SYNOPSIS
|
|
|
|
use File::Spec::Functions;
|
|
$x = catfile('a','b');
|
|
|
|
=head1 DESCRIPTION
|
|
|
|
This module exports convenience functions for all of the class methods
|
|
provided by File::Spec.
|
|
|
|
For a reference of available functions, please consult L<File::Spec::Unix>,
|
|
which contains the entire set, and which is inherited by the modules for
|
|
other platforms. For further information, please see L<File::Spec::Mac>,
|
|
L<File::Spec::OS2>, L<File::Spec::Win32>, or L<File::Spec::VMS>.
|
|
|
|
=head2 Exports
|
|
|
|
The following functions are exported by default.
|
|
|
|
canonpath
|
|
catdir
|
|
catfile
|
|
curdir
|
|
rootdir
|
|
updir
|
|
no_upwards
|
|
file_name_is_absolute
|
|
path
|
|
|
|
|
|
The following functions are exported only by request.
|
|
|
|
devnull
|
|
tmpdir
|
|
splitpath
|
|
splitdir
|
|
catpath
|
|
abs2rel
|
|
rel2abs
|
|
case_tolerant
|
|
|
|
All the functions may be imported using the C<:ALL> tag.
|
|
|
|
=head1 COPYRIGHT
|
|
|
|
Copyright (c) 2004 by the Perl 5 Porters. All rights reserved.
|
|
|
|
This program is free software; you can redistribute it and/or modify
|
|
it under the same terms as Perl itself.
|
|
|
|
=head1 SEE ALSO
|
|
|
|
File::Spec, File::Spec::Unix, File::Spec::Mac, File::Spec::OS2,
|
|
File::Spec::Win32, File::Spec::VMS, ExtUtils::MakeMaker
|
|
|
|
=cut
|
|
|