[At the end of the
wantarray
function's docs:] This function should have been named wantlist() instead.
[True, because it works with any kind of list context, not just array-driven ones.][And, the end of
write
's docs:] Note that write is not the opposite of "read". Unfortunately.
[True, because write
prints any kind of stuff to a filehandle according to a predefined text format, and read
reads a specified number of characters from a filehandle.]This is what happens when a language spends several years finding its direction and destiny while whole infrastructures are built upon earlier versions. It has to stay backwards compatible, even at the cost of things like bumpy diction, lest all those old programs collapse, making a great many people very sad.
Perl 6 is going to quite purposefully shed all this dead weight, of course. (Modulo its Perl 5 compatibility mode.) I think I seriously thought about Perl 6's impending arrival affecting me for the first time today: my morning ablution's ponderings drifted towards the fact that the chemical-manipulation libraries I'm creating now are pure-Perl, which is mostly very nice, but less so if you want tons of work done very quickly. Running on my laptop, it currently takes my object-oriented molecular about 10 minutes to get through 100,000 iterations of parsing the SMILES string for benzene and turning it into an object.
So, perhaps this is a job for XS, Perl's way of letting you sneak compiled C libraries (which usually have much faster runtimes than Perl) into Perl modules? Well... if Perl 6 weren't on the horizon, I'd probably jump on the opportunity to learn XS and get good at it. But now? Enh. Perl 6 is going to do everything differently, and I know I'm doomed to leap recklessly into 6-land as soon it arrives. The civilized, Sixish ways of doing things will, in my mind, quickly rub out the backwards traditions of the barbaric Five tribe. It'll be awful, just awful. So, yeah. I'll just stick with my pathetic 150-molecules-per-second library for now (which will in reality probably roxor for purposes other than massive chem-informatics batch processing, of which there are many).