in reply to SQL in files or File::Slurp?

Are you also worried about people deleting the scripts?

I can see a benefit to the first if multiple scripts use the same SQL. See DBIx::PreQL for an alternative approach.

A third option is to step one layer back, load a module (use OurSystem::Orders), and call my @orders = OurSystem::Orders::getOrders. Store how you construct the data in the module (OurSystem::Orders), and don't let it near your scripts. Then if your back-end representation changes (different database, normalization of data, web service, whatever), you don't need to change all of your scripts. You also consolidate all of the DBI handling in one location.

--MidLifeXis