I don't think it's the output stream from the test harness. The message seems complete:
Bareword "xception" not allowed while "strict subs" in use at C:/straw
+berry5143/perl/vendor/lib/Test/Exception.pm line 4.
Compilation failed in require at t/40_fetch_memberships.t line 14.
BEGIN failed--compilation aborted at t/40_fetch_memberships.t line 14.
So if an "\r" or something like that got into the input stream, and caused line 4 of Test::Exception to be split as it was being read, why wouldn't the first half of the line cause an error?
(with no semicolon at the end of the "line")?
The way forward always starts with a minimal test.