What you are describing is the basic idea behind the
Schwartzian Transform. See my
write-up elsewhere in this
thread for some
links with more information. The idea is that you do the expensive operation (in this case, it's split) once and use a data structure to store the result. You then sort on the results and extract the original information when done. Our very own
merlyn was the
first (AFAIK) to apply his twisted mind to this problem and come up with a very perlish (or lispish depending on your mother tongue) method of doing this in one fell swoop using map.