I agree wholeheartedly about Roman. It is indicative of the beauty of CPAN. And the perfect example of why to look there before leaping at any problem.
, you can create characters from a template, they are named Fred, Fred II, Fred III, etc. I had written roman numeral translators in the past (I had once implemented LISP's format stuff into C and C++) and they are a big pain in the neck. So I look on CPAN and read,install,integrate... problem solved.