use File::Basename; my $archive = "/some/dir/archive.tar.gz"; my ($filename, $dir) = fileparse($archive);