Just another Perl shrine | |
PerlMonks |
Re: Apparent Inconsistencies in Perl Function Namingby Dominus (Parson) |
on Nov 25, 2000 at 20:44 UTC ( [id://43318]=note: print w/replies, xml ) | Need Help?? |
I think you're right about the length() function.
People are surprised all the time when
length() fails to work on arrays. Nat Torkington put in a proposal for Perl 6 that suggests that length(@array) be made to work properly instead of its bizarre current behavior, so you're certainly not the only person to have thought of this. I don't know whether Larry will decide to change it, however. As for the slicing issue, it's tempting to ask that the positions in a string should be accessed by index as if the string were an array. You can do this in some other languages like C and Pascal where a string is an array. But it's hard to see how to arrange it in Perl, for syntactic reasons if nothing else. (Also, in Perl, a string is not an array.) But if your suggestion were followed, it would still be inconsistent. @array[3..5] produces a list of three items. But presumably you want your string-slice to produce a single string, not a list. Then in your alternate universe, PawnPrince comes along and asks why the slice notation sometimes produces a list and sometimes an string, and why it isn't consistent. So it's not clear that there's any benefit from your suggestion anyway.
In Section
Seekers of Perl Wisdom
|
|