use File::Basename; my ($name, $path, $suffix); my $filename_with_path_unix = "/usr/local/sample.txt"; print "path is "; print $filename_with_path_unix."\n" ; # test 1, unix print "TEST #1\n"; ( $name, $path, $suffix ) = fileparse( $filename_with_path_unix, "\.[^.]*" ); print $name."\n"; print $path."\n"; print $suffix."\n"; print "File is ". $name.$suffix."\n"; #test 2, dos print "TEST #2\n"; my $filename_with_path_dos = "C:\Documents and Settings\My Documents\sample.txt"; print "path is ".$filename_with_path_dos."\n"; ( $name, $path, $suffix ) = fileparse( $filename_with_path_dos, "/.[^.]*" ); print $name."\n"; print $path."\n"; print $suffix."\n"; print "File is ". $name.$suffix."\n";