One thing that Perl most definitely is not is "orthogonal": that every kind of thing has every kind of operation applicable to it. Perl is optimized for the tasks you will be performing most often.
in reply to Apparent Inconsistencies in Perl Function Naming
Larry said in one presentation I saw him make (can't recall which one now) that orthogonality isn't even for the birds... you don't see a bird go from northwest to southeast by flying one square south then one square east then one square south...
Birds take the direct route, and so does Perl. Perl has operations for the things
you do, and they're convenient in the domain of the thing you're working on.
The length of an array has no operator name, by the way. It's the name of the array
in a scalar context. Nearly every time I do that, I don't have to say scalar,
because I'm already in a scalar context. And I never think of substr as
a "slice" of a string. It's a substring.
Get your terminology straight, and Perl makes sense. Try to look for artificial
order along an axis not present, and you'll be no better than the scientists who
claim that the drains drain clockwise in the Northern Hemisphere.
-- Randal L. Schwartz, Perl hacker