I'm not happy with the design of RTF::Writer, either. It'll take care of header information for you, but it doesn't properly abstract things that should be abstracted (like making a bold paragraph). I shouldn't have to know that '\fs20' is a 10-point font. I should be able tell RTF::Writer to put a 20-point font and it'll take care of the details. That's why you have a module to abstract these things. As it is, you end up writing a lot of the RTF by hand, anyway.
----
send money to your kernel via the boot loader.. This and more wisdom available from Markov Hardburn.