The point that puzzles me is that the PerlTK server() call does provide the correct output when run directly, but not when packed inside a Par::Packer exe, so it's not a matter of depreciated APIs or ancient warnings from a 16 year old book.
It appears like a Par::Packer bug to me, but I don't have enough knowledge or skill to pinpoint the root cause.