$moo = 'boo-hoo-hoo'; $hoo = lcfirst join '', map { ucfirst $_ } split /-/, $moo;