in reply to A looping and format question...
Well, you're code's pretty rough, but i'll try and pinpoint the immediate problem:
I would also suggest that a much better way of doing this would be to take the test out of the loop entirely.
Also, you may want to take a look at the Net::Whois module.
If the above test evaluates to true, you should also exit the OUTER loop, thus;write STDOUT if defined($registrant and $admin and $tech and $billing +and $names[2] and $expires);
Otherwise the loop will keep on recurring and print your results several times.if defined($registrant and $admin and $tech and $billing and $names[2] + and $expires){ write STDOUT; last OUTER; }
I would also suggest that a much better way of doing this would be to take the test out of the loop entirely.
Also, you may want to take a look at the Net::Whois module.
In Section
Seekers of Perl Wisdom