in reply to Reporting

The big reason, in my mind, why we use Perl for so many things other than Reporting is that we are still doing reporting. Every single Perl application I've ever written did the following:
  1. Read in A
  2. Transform A -> B
  3. Write out B
I might have 1 or 10 data instreams and 1 or 10 data outstreams. These streams might be files, sockets (like Apache), databases, or whatever. In the process of transformation, I might hide a lot of the details in objects and/or modules. But, every application I have ever worked on is a glorified munger, and Perl is the best language for munging.

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.