in reply to Modules as executable scripts?
One suggestion for those who feel queazy about 'magic' like this is that you can easily kick off a sub in a package with something like:
perl -MYour::Package -e run
where run is the name of a sub that requires no args. Which approach is neater is in the eye of the beholder.
I really like the comment from friedo that discussed using a similar approach to make a package that can be a standalone test script and also a base package for other tests.