Commit | Line | Data |
270d1e39 |
1 | package File::Spec; |
2 | |
270d1e39 |
3 | use strict; |
cbc7acb0 |
4 | use vars qw(@ISA $VERSION); |
270d1e39 |
5 | |
3c32ced9 |
6 | $VERSION = 0.82 ; |
270d1e39 |
7 | |
cbc7acb0 |
8 | my %module = (MacOS => 'Mac', |
9 | MSWin32 => 'Win32', |
10 | os2 => 'OS2', |
fa6a1c44 |
11 | VMS => 'VMS', |
12 | epoc => 'Epoc'); |
cbc7acb0 |
13 | |
14 | my $module = $module{$^O} || 'Unix'; |
15 | require "File/Spec/$module.pm"; |
16 | @ISA = ("File::Spec::$module"); |
270d1e39 |
17 | |
18 | 1; |
19 | __END__ |
20 | |
21 | =head1 NAME |
22 | |
23 | File::Spec - portably perform operations on file names |
24 | |
25 | =head1 SYNOPSIS |
26 | |
5c609535 |
27 | use File::Spec; |
270d1e39 |
28 | |
5c609535 |
29 | $x=File::Spec->catfile('a', 'b', 'c'); |
270d1e39 |
30 | |
5c609535 |
31 | which returns 'a/b/c' under Unix. Or: |
32 | |
33 | use File::Spec::Functions; |
34 | |
35 | $x = catfile('a', 'b', 'c'); |
270d1e39 |
36 | |
37 | =head1 DESCRIPTION |
38 | |
39 | This module is designed to support operations commonly performed on file |
40 | specifications (usually called "file names", but not to be confused with the |
41 | contents of a file, or Perl's file handles), such as concatenating several |
42 | directory and file names into a single path, or determining whether a path |
43 | is rooted. It is based on code directly taken from MakeMaker 5.17, code |
44 | written by Andreas KE<ouml>nig, Andy Dougherty, Charles Bailey, Ilya |
45 | Zakharevich, Paul Schinder, and others. |
46 | |
47 | Since these functions are different for most operating systems, each set of |
48 | OS specific routines is available in a separate module, including: |
49 | |
50 | File::Spec::Unix |
51 | File::Spec::Mac |
52 | File::Spec::OS2 |
53 | File::Spec::Win32 |
54 | File::Spec::VMS |
55 | |
56 | The module appropriate for the current OS is automatically loaded by |
5c609535 |
57 | File::Spec. Since some modules (like VMS) make use of facilities available |
58 | only under that OS, it may not be possible to load all modules under all |
59 | operating systems. |
270d1e39 |
60 | |
61 | Since File::Spec is object oriented, subroutines should not called directly, |
62 | as in: |
63 | |
64 | File::Spec::catfile('a','b'); |
5c609535 |
65 | |
270d1e39 |
66 | but rather as class methods: |
67 | |
68 | File::Spec->catfile('a','b'); |
69 | |
5c609535 |
70 | For simple uses, L<File::Spec::Functions> provides convenient functional |
71 | forms of these methods. |
72 | |
73 | For a list of available methods, please consult L<File::Spec::Unix>, |
74 | which contains the entire set, and which is inherited by the modules for |
75 | other platforms. For further information, please see L<File::Spec::Mac>, |
270d1e39 |
76 | L<File::Spec::OS2>, L<File::Spec::Win32>, or L<File::Spec::VMS>. |
77 | |
78 | =head1 SEE ALSO |
79 | |
80 | File::Spec::Unix, File::Spec::Mac, File::Spec::OS2, File::Spec::Win32, |
5c609535 |
81 | File::Spec::VMS, File::Spec::Functions, ExtUtils::MakeMaker |
270d1e39 |
82 | |
83 | =head1 AUTHORS |
84 | |
85 | Kenneth Albanowski <F<kjahds@kjahds.com>>, Andy Dougherty |
86 | <F<doughera@lafcol.lafayette.edu>>, Andreas KE<ouml>nig |
87 | <F<A.Koenig@franz.ww.TU-Berlin.DE>>, Tim Bunce <F<Tim.Bunce@ig.co.uk>>. VMS |
bd3fa61c |
88 | support by Charles Bailey <F<bailey@newman.upenn.edu>>. OS/2 support by |
270d1e39 |
89 | Ilya Zakharevich <F<ilya@math.ohio-state.edu>>. Mac support by Paul Schinder |
f9d788eb |
90 | <F<schinder@pobox.com>>. abs2rel() and rel2abs() written by |
91 | Shigio Yamaguchi <F<shigio@tamacom.com>>, modified by Barrie Slaymaker |
92 | <F<barries@slaysys.com>>. splitpath(), splitdir(), catpath() and catdir() |
93 | by Barrie Slaymaker. |