I don't think I understand. The XML is a serialization of the data already, why do you want to have another? If you are parsing the same XML several times during one run time of the script, then just keep it in memory. If it's a config, it's unlikely it's gonna be prohibitively big.
If you parse the XML just one each time you run the script, then unless the script is a very tiny thing, the time spent parsing the XML will be irrelevant. Besides you'd have to parse the other serialization as well!
If the working with the XML::Rabbit created objects is slow, you'll have to use something else. In either case, FIRST PROFILE the script to find out where the problem is and THEN OPTIMIZE the problematic part.
Enoch was right!
Enjoy the last years of Rome.