use File::Spec::Functions 'splitpath'; my $value = "/home/image/office.iso"; my($fullname,$filename) = (splitpath $value)[-1] =~ m< ( ([^\.]+) \. .*) >x; print "fullname - $fullname\nfilename - $filename\n"; __output__ fullname - office.iso filename - office