Looks pretty good. Breaking it off into a separate superdoc was a good idea.
(What's funny is that I stole code from Everything::MAIL to write the silly thing.)
One thing I did notice is that if you give an invalid username or e-mail address, there's no
message saying so. Let me at the source and I'll fix it up again AND learn better superdoc practices.
Forgot a $str.= in front of a line to take care of that... thanks for pointing that out though. I'll e-mail you my code if you're interested though.
I yanked a lot of it from create a new user