in reply to Moving from scripting to programming

Moving "from scripting to programming" is so much broader than whether to embrace a "fully fledged, object oriented approach"!

Conway's Ten Essential Development Practices should help you appreciate that. For example:

Modularity is a fundamental aspect of all successful large programs. In Perl therefore, modules are fundamental and you must master them. A study of top-rated CPAN modules is time well spent. For more details see: Writing Solid CPAN Modules.

High-level Design Checklist

As for whether and when to use OO, there is no substitute for judgement and taste based on understanding and experience. A simple rule of thumb is to ask "do I need more than one?": if the answer is yes, an object is indicated; if the answer is no, then a module.

For some general background on programming paradigms, I quite like Stroustrup's description of different programming styles in C++, a multi-paradigm programming language:

Though Perl is also a multi-paradigm language, it has significant differences from C++ -- for example, Perl is dynamically typed while C++ is statically typed -- so a Perl design of a given system may vary significantly from a C++ one.

See also:

Updated 2020: Minor changes to "High-level Design Checklist" section.

  • Comment on Re: Moving from scripting to programming