Math::Polynomial::Solve is a module that solves polynomial equations by either numerical formulae or by iterative methods.
Polynomials of degrees two, three, and four will be solved by numerical methods unless you click on the "Use Hessenberg" check boxn. Solving for a quintic equation will force the use of the QR Hessenberg method even if you don't click on the check box.
One of my sources was R. W. D. Nickalls's paper, "A New Approach to solving the cubic: Cardan's solution revealed," The Mathematical Gazette, 77, 354-359, 1993. Dr. Nickalls was kind enough to send me an updated version of his article, which is available in PDF format by clicking here.