in reply to
Http Clients errors from LWP::Protocol::http after module upgrade
Hi tharple,
that's a very strange error.
In what situation can the 1st predicate pass when $wbits is undef?
Or why would && not short circuit correctly?
I can't think of any at all, that would make both the
defined() test and
&& pretty pointless.
What's more, line line doesn't match the error message. If something made defined() pass an undefined value, I'd have expected "Use of uninitialized value $fbits in pattern match (m//)", however the error speaks of "SCALAR reference" as if some dereferencing was going on there, which there isn't. Perl 5.14+ does some automatic dereferencing in some situations but with 5.12 that shouldn't be the case either.
Frankly I don't have a clue. Perhaps something is screwing¹ with your compiled code. I'd try and split up that condition to see what exactly is acting up:
if (defined($wbits)) {
print "\$wbits is defined: ",Dumper($wbits);
if($wbits =~ /[^\0]/) {
print "\$wbits matched\n";
...
} else {
print "\$wbits did not match\n";
}
}
¹ To whom it may concern: non-sexual readings preferred here