When I see "CSV", I think DBD::CSV. Sorting? That's just ORDER BY. At that point, it's pretty much done.
Mind you, I wouldn't normally sort a CSV file (at least on purpose, I've got many CSV files that are sorted naturally by date because they're inserted that way). I'd leave it as-is, and when I go to use it, I'd again just SELECT my,col,names FROM TABLE ORDER BY col - because next time I might want to ORDER BY names, and really, why waste time sorting it on disk when I'm going to be explicit each time anyway? (Ok, there may be performance reasons, but not usually an issue.)
No reason to bring up Excel :-)