This brings up the tired joke of the computer science professor who walks in with five #2 pencils for his five students taking a test.
The student says "Good, I see you have brought five pencils in for us!"
The professor scratches his head and looks confused. "Surely you can't be taking Numerical Methods without the ability to count, son! There are four pencils! 0, 1, 2, 3, 4!"
---
To the OP: Bottom line, not just Perl, but all of computer science and computers in general, are zero based. After all, arrays (in C) are just offsets to memory addresses, and [0] means no offset, [1] means one width further on, and this means essentially arrays are pointer arithmetic. Now, this doesn't directly apply to Perl (at least not on the surface), but this is why we have zero-basing as a standard.
To be honest though, I don't think the notion of sorting a two dimensional array makes sense, and the lists of arrays suggestion (while not syntactically cleaner) seems to be what you want. If you really want something more advanced, maybe, just maybe, PDL might be worth looking at. It could (as far as I know) "sort" N-th dimensional arrays by arbitrary columns without blinking. | [reply] [d/l] [select] |
To use PDL for this, you'd use qsorti on a slice to get the relevant column, then dice_axis the original structure on the sorted indices.
| [reply] [d/l] [select] |
Pascal lessons do a good (for some unusual values of "good") job of teaching people to abuse arrays. I remember, we always used 1-based arrays as they were "more natural". Teacher said so.
| [reply] |
If only foo[-1] worked in C like you can do in Perl! :)
| [reply] [d/l] |
Psst, hey, buddy. $[ = 1; (perlvar). I was never here. | [reply] [d/l] |