There are two more issues affecting the functioning of a Perl service server:
1. Failure to prepend the Perl namespace to the exception name when checking the exception type from a eval'ed method call.
2. writeMessageEnd() should be present after a method call writes its result.
I'm attaching a patch which addresses these issues, in addition to the following more minor changes:
1. Tried to make indentation and line breaks more consistent to ensure readability of the generated code.
2. Added a few best practice ideas to improve the code in minor ways.
3. Added a readAll() function to the Thrift::MemoryBuffer, as the one found in Thrift::Transport uses a while loop to consume the data, which results in a endless loop.