Here is a perl hint that has nothing to do with your question... your line:
print FH "zone \"$formdata{domain}\" in \{\n\ttype slave\;\n\tfile\"$client\/db.$formdata{domain}\"\;\n\tallow-query \{ any\; \}\; \}\;\n\n";
could be much easier to read if you used qq
print FH qq|zone "$formdata{domain}" in {\n\ttype slave;\n\tfile"$client/db.$formdata{domain}";\n\tallow-uery { any; }; };\n\n|;
qq'' qq{} qq[] qq() qq-- any of those work... qq is the interpolating quote (you can use single q for non-interpolatin, like '') what it does is let you use an arbitrary character as your quote character, so you don't have to escape ". Or you can use matching braces {} [] or (). Also, you don't need to escape special
perl characters like { and ; in a string.
- Ant