Gee, Randal, I have no idea how it differs. Since I don't have time to know each and every module cataloged at CPAN and other places, sometimes I write my own stuff, even when it's only 10 lines.
Update: And furthermore, Text::Abbrev doesn't do what I want. It gives me a hash of abbreviations, with the original strings as the values. Where exactly am I supposed to put the pointers to the functions to execute? No, that doesn't solve the problem at all. I suppose I could create the abbreviation hash from the command hash, but the sure seems like an extra step. And I don't get to use the nifty grep() function everyone carries on so much about. And even better, if the *user* should type more than the minimum number of characters required, it won't find the command. *BZZZZT* wrong answer!
--Chris
(And yes, I voted down your response for sarcasm)
e-mail jcwren