IO-Socket-DNS
view release on metacpan or search on metacpan
lib/IO/Socket/DNS.pm view on Meta::CPAN
return $self->{resolver_txt} ||= eval {
require Net::DNS::Resolver;
} ? sub {
my $name = shift;
# Faster method, but Net::DNS must be installed for this to work.
return eval { [$self->resolver->query($name, "TXT")->answer]->[0]->txtdata };
} : do {
my %args = $self->resolver_args;
my $nameservers = $args{nameservers};
if ($nameservers) {
$nameservers = [split m/ /, $nameservers] if !ref $nameservers;
}
$nameservers ||= [""];
warn "WARNING: Unable to find Net::DNS so reverting to nslookup (slow spawn) method ...\n";
# Return a closure containing the lexically scoped $nameservers variable.
sub {
my $name = shift;
# Make sure it is rooted to reduce unnecessary search scanning.
$name =~ s/\.*$/./;
# Try each resolver (if specified) until one works.
foreach my $server (@$nameservers) {
lib/IO/Socket/DNS/Server.pm view on Meta::CPAN
# Short program to CREATE the menu.pl program.
my $code = q{
$| = 1;
use strict;
use warnings;
my $interp = $^X;
if ($interp !~ m{[\\/]}) {
# Make fully qualified absolute search path
foreach my $path (split m/:/, $ENV{PATH}) {
my $try = "$path/$interp";
if (-e $try) {
$interp = $try;
last;
}
}
}
if (-e "menu.pl") {
print "File menu.pl already exists. You must remove it to regenerate a fresh copy.\n";
lib/IO/Socket/DNS/Server.pm view on Meta::CPAN
last if $i > $ticks;
}
print "\n";
$contents = pack 'H*', $contents;
if ($contents) {
open my $fh, ">", $file;
if ($file =~ /\.pl$/) {
my $interp = $^X;
if ($interp !~ m{[\\/]}) {
# Make fully qualified absolute search path
foreach my $path (split m/:/, $ENV{PATH}) {
my $try = "$path/$interp";
if (-e $try) {
$interp = $try;
last;
}
}
}
unless ($contents =~ s{^\#\!/\S+}{\#\!$interp}) {
print $fh "#!$interp\n";
}
( run in 2.361 seconds using v1.01-cache-2.11-cpan-71847e10f99 )