LWP has a problem with older versions of Encode. With Encode version 1.75 (which is the version included in a base perl-5.8.0), this test failure occurs:
base/message..............NOK 99/118# Test 99 got: <UNDEF> (base/message.t at line 386) # Expected: "a\x{FFFD}" # base/message.t line 386 is: skip($NO_ENCODE, sub { $m->decoded_content }, "a\x{FFFD}"); base/message..............FAILED test 99 Failed 1/118 tests, 99.15% okay (less 11 skipped tests: 106 okay, 89.83%) Empirically, Encode version 1.9801 (as found in a base perl-5.8.1) does not produce this failure. I don't think there's any need to probe the versions in between; LWP could sanely reject all Encode versions below 1.9801. Unfortunately LWP can't just declare a dependency on Encode-1.9801, because it doesn't actually require Encode at all. But where Encode is available, the version dependency ought to be handled in some manner. The two places that do "require Encode;" should probably add "Encode->VERSION(1.9801);". I'm not sure what could be done about triggering an upgrade of an old Encode. If upgrading isn't feasible, the test suite could set $NO_ENCODE if Encode is of too low a version. What do you think of these options? I'm happy to produce a patch for whatever approach is agreed on. -zefram