Subject: | Error using IO::ScalarArray in mime decoder |
SOAP::Lite 0.65 fails to pass tests with a deserialisation error. This has been tracked down to the line in the process_singlepart subroutine:
### Flush and rewind encoded buffer, so we can read it:
$ENCODED->flush or die "$ME: can't flush: $!";
The IO::Handle::flush method is documented NOT to return anything, therefore the writer of IO::ScalarArray has implemented a skeleton flush() method to be compatible with all other IO classes.
This test fails here causing SOAP::Lite to fail its tests.
Changing the line to read:
$ENCODED->flush;
cures the problem.
Maybe the IO::Scalar and IO::ScalarArray libraries need fixing and the IO::Handle docs improved but for now lets not get fussy.
Yours,
Karl Royer