in reply to Reporting
This is why Perl has the easiest time adding new I/O formats to existing apps. DBI, CGI, HTML::Template or Mason, PDF::Template, Spreadsheet::, XML::, and on and on. All these I/O layers mean we can focus on the munging part without having to worry about how the stuff we're munging goes in or out.
As for best practices ... I dunno. Just don't be stupid and you'll be fine. It doesn't have to be perfect - good enough is, well, good enough.
We are the carpenters and bricklayers of the Information Age.
Don't go borrowing trouble. For programmers, this means Worry only about what you need to implement.
Please remember that I'm crufty and crochety. All opinions are purely mine and all code is untested, unless otherwise specified.