--- lib/IO/Socket/SSL.pm 2014-11-26 21:54:01.000000000 +0000 +++ lib/IO/Socket/SSL.pm 2014-12-19 20:27:56.301648480 +0000 --- lib/IO/Socket/SSL.pm.orig 2015-09-20 10:55:08.000000000 +0300 +++ lib/IO/Socket/SSL.pm 2015-10-16 18:23:06.625895313 +0300 @@ -24,8 +24,8 @@ use strict; BEGIN { - eval { require Scalar::Util; Scalar::Util->import("weaken"); 1 } - || eval { require WeakRef; WeakRef->import("weaken"); 1 } + do { require Scalar::Util; Scalar::Util->import("weaken"); 1 } + || do { require WeakRef; WeakRef->import("weaken"); 1 } || die "no support for weaken - please install Scalar::Util"; } @@ -203,13 +203,7 @@ # hack which is used to filter bad settings from used modules my $FILTER_SSL_ARGS = undef; -# non-XS Versions of Scalar::Util will fail -BEGIN{ - local $SIG{__DIE__}; local $SIG{__WARN__}; # be silent - eval { use Scalar::Util 'dualvar'; dualvar(0,'') }; - die "You need the XS Version of Scalar::Util for dualvar() support" - if $@; -} +use Scalar::Util 'dualvar'; # get constants for SSL_OP_NO_* now, instead calling the releated functions # every time we setup a connection @@ -266,7 +260,7 @@ # try to load inet_pton from Socket or Socket6 and make sure it is usable local $SIG{__DIE__}; local $SIG{__WARN__}; # be silent - my $ip6 = eval { + my $ip6 = do { require Socket; Socket->VERSION(1.95); my $ok = Socket::inet_pton( AF_INET6(),'::1') && AF_INET6(); @@ -278,7 +272,7 @@ return ($host,$port); }; $ok; - } || eval { + } || do { require Socket6; my $ok = Socket6::inet_pton( AF_INET6(),'::1') && AF_INET6(); $ok && Socket6->import( qw/inet_pton NI_NUMERICHOST NI_NUMERICSERV/ ); @@ -292,7 +286,7 @@ if ( $ip6 ) { # if we have IO::Socket::IP >= 0.31 we will use this in preference # because it can handle both IPv4 and IPv6 - if ( eval { + if ( do { require IO::Socket::IP; IO::Socket::IP->VERSION(0.31) }) { @@ -304,7 +298,7 @@ # if we have IO::Socket::INET6 we will use this not IO::Socket::INET # because it can handle both IPv4 and IPv6 # require at least 2.62 because of several problems before that version - } elsif( eval { require IO::Socket::INET6; IO::Socket::INET6->VERSION(2.62) } ) { + } elsif( do { require IO::Socket::INET6; IO::Socket::INET6->VERSION(2.62) } ) { @ISA = qw(IO::Socket::INET6); constant->import( CAN_IPV6 => "IO::Socket::INET6" ); $IOCLASS = "IO::Socket::INET6"; @@ -443,7 +437,7 @@ } $default_ca{SSL_ca_file} = Mozilla::CA::SSL_ca_file() - if ! %default_ca && eval { require Mozilla::CA }; + if ! %default_ca && do { require Mozilla::CA }; $ca_detected = 1; return %default_ca; @@ -3021,7 +3015,7 @@ sub resolve_blocking { my ($self,%args) = @_; while ( my %todo = $self->requests ) { - eval { require HTTP::Tiny } or die "need HTTP::Tiny installed"; + do { require HTTP::Tiny } or die "need HTTP::Tiny installed"; # OCSP responses have their own signature, so we don't need SSL verification my $ua = HTTP::Tiny->new(verify_SSL => 0,%args); while (my ($uri,$reqdata) = each %todo) {