Most scripts can benefit from putting the functionality within a module. In that case, you're distributing the module and the script comes along with it. cpan, pod2html, and many others most people take for granted fall into this category.
- Easier to test because you're testing a module
- Easier to reuse in many scripts
- Easier to subclass for other people
My criteria for good software:
- Does it work?
- Can someone else come in, make a change, and be reasonably certain no bugs were introduced?