in reply to AutoMagic HTML
Well, you've got a simple markup. So what you're really doing is hacking up a parser for it. And we all know what happens to hacks . . .
So, in the interest of elegance, ease, and extensibility, I'd use an existant parser generator, and keep the language definition around to extend. I'd use Parse::RecDescent myself, but use whatever you like of course.
Light a man a fire, he's warm for a day. Catch a man on fire, and he's warm for the rest of his life. - Terry Pratchet