use strict; use File::Basename; my $mFileName; my $mFilePath; my $mFileExt; foreach ( '/home/rhose/work/perl/test', '/home/rhose/work/perl/test.pl', 'c:\work\perl\test', 'c:\work\perl\test.pl' ) { ($mFileName, $mFilePath, $mFileExt)=fileparse($_,'\.[^.]*'); print "Full:\t",$_,"\n"; print "Path:\t",$mFilePath,"\n"; print "Name:\t",$mFileName,"\n"; print "Ext:\t",$mFileExt,"\n"; print "\n"; }