http://www.perlmonks.org?node_id=988633


in reply to Re^4: How to convert an @ARGV to form based input?
in thread How to convert an @ARGV to form based input?

Ok, now the error message looks differently, don't you agree? :)

$domain is already defined, but uninitialized. Please replace my $domain; with my $domain = 'google.com'; and check the result.

Replies are listed 'Best First'.
Re^6: How to convert an @ARGV to form based input?
by taint (Chaplain) on Aug 21, 2012 at 08:18 UTC
    Yes, I agree. :)
    Just tried this:
    #!/usr/bin/perl -w use strict; use Net::DNS; my $dns = new Net::DNS::Resolver; my $domain; if($domain ne "") { my $mx = $dns->query( $domain, 'MX' ); print "content-type:text/html; charset=utf-8\n\n"; print "$domain:\n\n"; foreach my $rr ($mx->answer) { print "<br />", $rr->exchange, ' [<b>', $rr->preference, "</b> +]\n"; } } else { print "content-type:text/html; charset=utf-8\n\n"; print "<form action=\"dnsdig.cgi\" method=\"post\"> <input name=\"domain\" type=\"text\" value=\"\" /> <input type=\"submit\" value=\"Get MX\" /> </form>"; }
    But again, fail:
    Use of uninitialized value $domain in string ne at dnsdig.cgi line 9. Use of uninitialized value $domain in string ne at dnsdig.cgi line 9., + referer: ...
    Now I'll use your newest recommendation (which I know will work), but doesn't provide the empty form field I'm looking for -- but I'll do it anyway. :)
    --Chris
    #!/usr/bin/perl -Tw
    use perl::always;
    my $perl_version = "5.12.4";
    print $perl_version;
      Well, as you might expect, the output returned:
      google.com: alt3.aspmx.l.google.com [40 +] alt4.aspmx.l.google.com [50 +] aspmx.l.google.com [10 +] alt2.aspmx.l.google.com [30 +] alt1.aspmx.l.google.com [20 +]
      Now, if I could only figure out how to return the form field...
      changing eq "" to ne "" didn't return form fields either. :(
      Thanks again for taking the time to respond.
      --Chris
      #!/usr/bin/perl -Tw
      use perl::always;
      my $perl_version = "5.12.4";
      print $perl_version;