Math::Geometry implements classic geomtrical functions in Perl, it has an emphasis on 3 dimensional geometry including projects, rotations and other standard 3 dimensional operations. use Math::Geometry; @P2=rotx(@P1,$angle); @P3=rotx(@P1,$angle); @N =triangle_normal(@P1,@P2,@P3); @ZP=zplane_project(@P1,$d); See the pod documentation in Geometry.pm for more details.