The trouble you seem to be having is because you haven't read the fileparse_set_fstype portion of the File::Basename docs.
Anyway, I know its been a year since you wrote this, but I finally wrote fileparse (just for completeness) and thought I'd share.
sub File::Spec::dirname {
my $self = shift;
return $self->catpath( ( $self->splitpath(shift) )[ 0, 1 ] );
}
sub File::Spec::basename {
my $self = shift;
my $name = shift;
return ($self->fileparse($name, map("\Q$_\E",@_)))[0];
}
sub File::Spec::fileparse {
my $self = shift;
my( $suffix, $path, $name ) = $self->splitpath(shift);
$path = $self->catpath( $suffix, $path, '' );
for my $s(@_){
$self =~ s/($s)$//i and last;
}
$suffix = $1 ? $1 : undef;
wantarray ? ( $name, $path, $suffix ) : $name;
}
Check out file.spec.basename.txt
to test the above with the File::Basename test suite.
MJD says "you can't just make shit up and expect the computer to know what you mean, retardo!" | I run a Win32 PPM repository for perl 5.6.x and 5.8.x -- I take requests (README). | ** The third rule of perl club is a statement of fact: pod is sexy. |
|