How do you "sordid sort" alphanumeric strings?
I observed that the match @a = $a =~ m/$ALNUM/g always produces a sentinel pair. Is the above code relying on undocumented behaviour?


I don't know what you mean by "sentinel pair", but that will always return two values per match since you have two captures.


  Can you help simplify the sordidcmp subroutine?


You could replace sort sordidcmp with Sort::Key::Natural's natsort.