use File::Basename; my ($ext, $dash) = ('.bmp', '-'); # assumptions my $f = '453445-5.bmp'; my ($base, $copy) = split /$dash/, basename($f, $ext); print "$base$dash$copy$ext\n"