$xtemplate = join("", @xtemplate); @template = $xtemplate =~ /^(.*?)\*{4}filename.ext\*{4}/sg; push (@template, $xtemplate =~ /\*{4}filename.ext\*{4}(.*?)\*{4}title\*{4}/sg; push (@template, $xtemplate =~ /\*{4}title\*{4}(.*?)\*{4}headings\*{4}/sg; push (@template, $xtemplate =~ /\*{4}headings\*{4}(.*?)/sg; for ($i=0; $i <= (@filenames-1); $i++) { open(FILE, ">@filenames[$i]") or die; print FILE QQ(@temlate[0] @title[$i] template[1] @heading[$i] template[2] @stuff[$i] @template[3]); close(FILE); }