I lost my temper on the same problem quite recently and resorted to barbaric (bordering on, if not actually a, "this is not entirely a Perl solution") means. If you intend to display the output to HTML like I intended to, what I did might be of help:
I simply wrapped the entire "offending" input file text within <pre></pre> tags and displayed it into an iframe in the same page. This preserved the layout of the page while displaying the text in a separate section of the page. It also allowed for the use of a menu of the files, created only once at the time page is loaded. Clicking on the menu items displayed each file in the iframe without reloading the entire page, unless you need to in case someone updates the directory from which the menu originates. You still need to use Perl a script (aha!) to read the files and spew it into html into the iframe.
Be warned however that I haven't tested this on a MAC (which are virtually non-existent in my direct social environment).
I hope this helps.