Hi Derek
(in my last answer I wrote 'proposition' instead of 'proposal' - not native
english speaking ;-)
Am Dienstag, 1. M�rz 2005 23.06 schrieb [EMAIL PROTECTED]:
> Joe,
>
> if you still care, here is my final code. Will you please eval it and them
> comment again?
>
> thanks,
(again, I didn't run the code)
> my $outfile0 = qq(/home/root/dns_servers.plout);
> open (F, "+>$outfile0") || die "could not open file: $outfile0 $!";
this way of open is ok since the filename is not an user input;
otherwise, there is a more secure three argument form (see perldoc -f open).
> my @a=();
> my $e=0;
> my $res = Net::DNS::Resolver->new;
> my $query = $res->query(".ohnet", "NS");
> if ( $query != 0 or $query != undef or $query != ' ' ) {
- This can be written shorter as "if ($query)", which means: "if query
contains a true value"
- pay (in general) attention by combining "!=" with OR :-)
- possible result values of method query() are: object, undef
(see man Net::DNS::Resolver)
> foreach ($query->answer) {
> if ( $_->type eq 'NS' ) {
> #next unless $_->type eq "A";
> foreach ($_->nsdname) {
> push (@a,$_) if $_ =~ "svr";
> $e++;
> } # END 2nd FOR LOOP
> } else {
> print F "DNS query failed: ", $res->errorstring, "\n";
> } # END 2nd IF
> } # END 1st FOR LOOP
>
> } # END 1st IF
> @a = sort { $a cmp $b } @a;
> print F $a[0],"\n";
> print F $a[1],"\n";
Maybe a dumb question (since I have no routine with Net::DNS::Resolver):
Are there alway two elements in array @a if everything went fine?
btw: If the 1st FOR LOOP loop failed, @a is empty, so maybe you should move
the last 3 lines in the 1st FOR LOOP if branch.
>
> close (F);
close (F) or warn "error closing $outfile0: $!";
(not necessary her, only good style)
>
> Derek B. Smith
> OhioHealth IT
> UNIX / TSM / EDM Teams
greetings joe
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>