1package File::Spec::Cygwin; 2 3use strict; 4use vars qw(@ISA $VERSION); 5require File::Spec::Unix; 6 7$VERSION = '1.1'; 8 9@ISA = qw(File::Spec::Unix); 10 11=head1 NAME 12 13File::Spec::Cygwin - methods for Cygwin file specs 14 15=head1 SYNOPSIS 16 17 require File::Spec::Cygwin; # Done internally by File::Spec if needed 18 19=head1 DESCRIPTION 20 21See L<File::Spec> and L<File::Spec::Unix>. This package overrides the 22implementation of these methods, not the semantics. 23 24This module is still in beta. Cygwin-knowledgeable folks are invited 25to offer patches and suggestions. 26 27=cut 28 29=pod 30 31=over 4 32 33=item canonpath 34 35Any C<\> (backslashes) are converted to C</> (forward slashes), 36and then File::Spec::Unix canonpath() is called on the result. 37 38=cut 39 40sub canonpath { 41 my($self,$path) = @_; 42 $path =~ s|\\|/|g; 43 return $self->SUPER::canonpath($path); 44} 45 46=pod 47 48=item file_name_is_absolute 49 50True is returned if the file name begins with C<drive_letter:>, 51and if not, File::Spec::Unix file_name_is_absolute() is called. 52 53=cut 54 55 56sub file_name_is_absolute { 57 my ($self,$file) = @_; 58 return 1 if $file =~ m{^([a-z]:)?[\\/]}is; # C:/test 59 return $self->SUPER::file_name_is_absolute($file); 60} 61 62=item tmpdir (override) 63 64Returns a string representation of the first existing directory 65from the following list: 66 67 $ENV{TMPDIR} 68 /tmp 69 C:/temp 70 71Since Perl 5.8.0, if running under taint mode, and if the environment 72variables are tainted, they are not used. 73 74=cut 75 76my $tmpdir; 77sub tmpdir { 78 return $tmpdir if defined $tmpdir; 79 my $self = shift; 80 $tmpdir = $self->_tmpdir( $ENV{TMPDIR}, "/tmp", 'C:/temp' ); 81} 82 83=back 84 85=cut 86 871; 88