in reply to Non-empty strings treated as null?!!

'!=' is for numbers, 'ne' is for strings, but in this case you don't need to use either as nslookup() returns undefined if it fails. Here's a little cleaned up version:
use strict; use warnings; use Net::Nslookup; foreach (@ARGV) { my $name = nslookup(host => $_, type => "PTR"); if ($name) { print("looking up ... $name ..."); my $ipAddr = nslookup(host => $_, type => "A"); print "$_ $name $ipAddr\n"; } else { print("NOT looking up ... $_ ...\n"); } }