use File::Basename 'fileparse'; my $file = "1_23_XXXXXXXX.CTL"; my ($name,$path,$suffix) = fileparse($file,qr/\.ctl$/i); my $logfile = "$path$name.log"; print "$logfile\n"; # "./1_23_XXXXXXXX.log"