Sounds like there may be some duplication. Net::DNSServer already exists. It doesn't do the zone files. But it is fairly stable and handles DNS very well. It is also fully object oriented so it is very extensible. Haven't looked at yours, but it seems as if finer points from both could be merged.