my @subs = qw(itchy.foo scratchy.bar homer.bab); open(FH, "template") or die; my @tmpl = ; close(FH); for my $i(@subs) { open(FH,">virt.$i") or die; for my $j(@templ) { $j =~ s/^(\w+)\@DOMAIN$/$1\@$i/; print FH $j; } close(FH) }