in reply to A string interpreted as an operator
Math::Expr and/or Math::Expression might be useful. I never used either.
If you use eval, you might want to use Safe as well.