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


in reply to Re^4: use Email::Valid offline
in thread use Email::Valid offline

I am having problems updating to the latest which is 1.21. Need to understand why.

That's probably a good place to spend some effort. The latest, which is actually v1.22 (as of Feb 13, 2020), shows no win32 errors, neither does v1.21.

Are you trying to install with network disabled? Because the Net::DNS test suite implies that it requires a network connection during testing. If you want it to not run networking tests, https://metacpan.org/source/NLNETLABS/Net-DNS-1.22/README says to run with --no-online-tests option: though it said the online-test portion of the suite "will not adversely affect the outcome of test suite", so not sure why it would stop the installation. If you need help debugging that upgrade problem, post the details of the failed test and/or installation.

looking again at test reports, v1.20 does show some win32 errors, such as mswin perl v5.24.0. I don't know enough to know whether the error shown is a network-related error, or whether it's the same as the error you are getting.

Replies are listed 'Best First'.
Re^6: use Email::Valid offline
by IB2017 (Pilgrim) on Mar 09, 2020 at 18:27 UTC

    I managed to get Net::DNS installed with v1.22. However the behaviour of the Email::Verify remains exactly the same.

    Line 41: is $Resolver = Net::DNS::Resolver->new;. If I comment out this line, the module responds immediatly if offline...

      According to the source code, Line 41 is run when the module is loading (at the use Email::Valid;), so I think this has nothing to do with your call to Email::Valid->address(), and I think no option you change there will influence the line-41 delay and timeout. You can prove this by commenting out the address call, and see if the problem is still there

      If the problem persists, I would want to tell Email::Valid to not try the Net::DNS::Resolver, but instead just automatically default to $Email::Valid::DNS_resolver='nslookup', like it does when the Net::DNS module isn't found. But there might be a way to trick it into not: maybe give it a fake Net::DNS already loaded, and then override with $Email::Valid::DNS_resolver='nslookup'? I'm not sure how that might work; it would take some experimenting.