This is because the code assumes that FileHandle has a read() method, which it does on more recent perls because of inheritance from IO::Handle, but isn't true on older perls.
prove -bv t/astress.t
t/astress.t ..
1..27
ok 1
ok 2
ok 3
Parse error:
Can't locate object method "read" via package "FileHandle" at /root/.cpan/build/XML-Parser-2.43-haFpxP/blib/lib/XML/Parser/Expat.pm line 482.
at line 10, column 34, byte 240
Handler couldn't resolve external entity at line 10, column 34, byte 240
error in processing external entity reference at line 10, column 34, byte 240 at /root/.cpan/build/XML-Parser-2.43-haFpxP/blib/lib/XML/Parser.pm line 187
ok 4
not ok 5
not ok 6
not ok 7
not ok 8
not ok 9
not ok 10
not ok 11
ok 12
ok 13
not ok 14
ok 15
ok 16
ok 17
not ok 18
not ok 19
not ok 20
not ok 21
not ok 22
not ok 23
not ok 24
ok 25
ok 26
ok 27
Failed 15/27 subtests