my $txtdata = "v=DKIM1; k=rsa; t=y;p=MIGfMA0GCSqGSIb3DQAFGQUAA4GNADCBiQKBgQDwWV9npEVjm10XoR1NIx174X/SR+BW8yd4RaXMk+pSDwNx0bFK8fPCXf7tLtFbjCmYldyhsrnrcloWPVlJkAy41xaTGUcXWpC2Onr/ScbkXa9cuREv4Fy4YmMpHoBKSHoE2JI8wBEe4oOoHPojT/b+HTNoZmxfkrYqk5eN5jnUewIDAQAB"; my $a = ";"; my $b = "\\" . ";"; # trying to escape the ; $txtdata =~ s/$a/$b/g; my $update = Net::DNS::Update->new("domain.com"); $update->push("update", rr_add("porgy._domainkey.domain.com 600 TXT '$txtdata'")); $update->sign_tsig("keyname", "keysign"); my $res = Net::DNS::Resolver->new; $res->nameservers("ns.domain2.com"); my $reply = $res->send($update); #### host -a porgy._domainkey.domain.com ns.domain2.com #### "v=DKIM1\\\; k=rsa\\\; t=y\\\;p=MIGfMA0GC..."