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.