Michael Carman (mjcarman / home.com) wrote: : Most of the responses have centered on your example, not the subject of : your question. Perl is non-orthogonal by design. From 'perldoc perl' : : "The language is intended to be practical (easy to use, : efficient, complete) rather than beautiful (tiny, elegant, : minimal)." The odd thing is that I used to be an orthogonality zealot, but have come over time to regard Perl as beautiful. To my way of thinking, Perl is nonorthogonal in many of the same ways and for the same reasons that human languages are nonorthogonal. If I wish to tell someone I am happy, I have an infinite number of ways to express myself, from quasi-synonyms (happy|glad|joyous|pleased|...) to grammatical arrangements (I am happy|I have been made happy|Happiness fills me). This allows me to shade meanings and extra intentional layers into what I say. I would once have been offended that Perl provides a grep built-in which can be trivially implement in terms of map. Now, I see this as a very useful semantic-level feature, a way to convey intention (to myself six months from now, to maintenance programmers) and to express that intention idiomaticly. : IMHO, orthogonality is overrated. It sounds nice on the surface, but you : invariably end up with a situation where you have to write some ugly : hack to get around the restrictions of the language. Amen. I'm reminded of a comparison I once heard between APL and LISP: "APL is a flawless diamond, perfect, symmetrical, an irreducible whole. But add anything to it, and it's ruined. LISP is a bucket of mud; add anything to it, and it's still a bucket of mud." -- | Craig Berry - http://www.cinenet.net/~cberry/ --*-- "The hills are burning, and the wind is raging; and the clock | strikes midnight in the Garden of Allah." - Don Henley