in reply to Format script out in JSON for webpage

All right, I read your OP this time. :P Your original code is not quite right. You've probably adjusted it to work on your box but what you posted is both broken and dangerous if not fixed properly. Always use strict.

You get $string from the CGI parameters but then use $domain in the dig call. You also pass user input directly to the shell with the backticks (``). This is about as serious a security mistake as there is. Also, there is no JSON in your code or implied in your jQuery code, so drop the use statement.

Adjusted, and simplified a little for ease of testing, with non-OO CGI and shell quoting capture of the command. You will probably have to install Capture::Tiny but it may be the easiest way to make the call to dig safe from exploits.

#!/usr/bin/env perl use strict; use warnings; use CGI ":standard"; use Capture::Tiny "capture_merged"; my $domain = param("s") || "example.org"; my $dig = capture_merged { system "dig", $domain }; print header(), escapeHTML($dig);

Your display problem has two possible solutions. Either fix the style of the #result div or jQ =~ s/text/html/

<div id="result" style="white-space:pre"></div>
# CGI change print header(), pre(escapeHTML($dig)); # plus JS change $("#result").html(res);