in reply to recursive parsing techniques
Are sure that Net::vCard or Text::vCard won't solve your needs?