http://www.perlmonks.org?node_id=978519


in reply to Polar Co-Ordinates: Rotating a 3D cartesian point around a fixed axis?

Math::Vector::Real provides the method rotate_3d that already does what you want:
use Math::Vector::Real; $offset = V($x, $y, $z); $p_rotated_1deg = $axis->rotate_3d(1*$pi/180, $p - $offset) + $offset;