|There's more than one way to do things|
Or seen "Apocalypse Now" which was based upon Conrad's book. I basically feel a little like the Marlon Brando character to zigsters Martin Sheen. Not to say that I'm mad or that Perl and Perlmonks are akin to savages, far from it. But like the savages proving more effective than the U.S Special forces, Perl proves it's worth over programming languages on a daily basis.
This is one of the first lessons I picked up in a Perl coder rich environment: Perl is not wholly a scripting language and not entirely a programming language. As a result it doesn't sit entirely in the idiom of either. You will concede that the coding philosophies for these two differ?
I am upset by the slanderous comment about side effects, if I removed the return from the line of code you've quoted and relied on the fact that Perl returns the value of last item used in the sub-routine, then that would be a sort of side-effect (I prefer to call them features). If you really mean short-circuits, yes I've used them by the bucket-load, what of it? Of course if you dislike Perl's making things easy for you approach, there are other languages that are also interpretted where you can spend weeks doing the stuff that Perl does in a day.
I hold my hands up to the comments about all this code going on one line, so:
As to the lousy coding standards in this code. I can only assume that people have avoided it since ar0n pointed out that: lhoward has done this already. When I've finished this I'll be hitting CPAN to study his method. I suspect some people have refused to comment, from contempt of the bad style. I concur that it is not nice but it is far from illegible, some of it is made of Perl 'phrases' or 'clichés' that I picked up, and after a while you look at and go ah that's a ....
This isn't obfuscation, it's unkempt and written in a style too terse to be easily maintained 1. but in a language where the optimisation is a false economy 2.
1.) I am however hoping that the numeric sequence we use won't change
in my life time ;o).