planetscape has compiled a nice list of nodes to answer this kind of question here - hope that is of some use.
Also, feel more than free to post some of your solutions (to any problems you might find) here at the monastery where you're quite likely to receive advice on the three or four best ways to accomplish something, with the intent of learning how some of the great minds here might approach the problems.
s**lil*; $*=join'',sort split q**; s;.*;grr; &&s+(.(.)).+$2$1+; $; =
qq-$_-;s,.*,ahc,;$,.=chop for split q,,,reverse;print for($,,$;,$*,$/)