If your goal is to manipulate algebraic expressions, rather than investigate XML and XSL, you may want to try using a perl interface to an already extant symbolic engine. Writing symbolic engines for all but the simplest tasks and getting them correct in all the corner cases is hard. Mathematica had serious bugs in their integration code for years.
MAXIMA (yes, all caps, this started as a mainframe prog) is one of the original computer algebra systems, It was proprietary for years and was then released as open source.
Symaxx is a Perl/Tk interface to MAXIMA that should serve as a nice example for interfacing with the engine.