Bienvenido a los foros de Perl en español, echangel.
Perl, por defecto, no está preparado para gestionar una gran precisión o una gran cantidad de datos de forma rápida.
De todas maneras, en Perl se puede hacer de casi todo, así que para esas tareas tenemos la opción de usar
PDL, biblioteca matemática que permite realizar programas con la sintaxis de Perl.
El problema de PDL es el mismo que el otras librerías matemáticas: hay que aprenderse su nomenclatura, su forma de trabajo, su espacio de nombres, etc. La curva de aprendizaje es muy fuerte, pero una vez superada, se ven los beneficios de unir Perl con esta biblioteca. En la web de PDL tienes algunos ejemplos de aplicación.
Otro tema más peliagudo es la precisión. Como cualquier otro sistema informático moderno, los cálculos se realizan usando el cálculo con punto flotante, y ya sabemos los
problemas que eso acarrea.
En Perl existen módulos para realizar cálculos con números muy grandes o muy pequeños, con un gran número de decimales, decidiendo la precisión (redondeo a un cierto lugar antes o después de la coma) y exactitud (redondeo a un cierto número de dígitos). Por ejemplo,
Math::BigFloat.
Aunque usan su propia biblioteca compilada en C, no deja de ser más lento que si usáramos un programa preparado para manejar precisiones arbitrarias de forma directa. Pero programar en Fortran o C es más lento (y proclive a errores) que programando en Perl.
Hay que sopesar las ventajas y desventajas de cada caso.
Por aquí hemos comentado, en alguna ocasión,
sobre estos temas. También en
Enteros grandes en C y
Números mayores de 16 dígitos.
Aunque te puedo recomendar Fortran en primer lugar, hace muchos años que no programa en este lenguaje y no conozco las nuevas facilidades para conseguir lo que quieres. Y Perl suele ser un lenguaje más amplio, con lo que puede ser también más difícil de aprender que Fortran. Pero puedes hacer más cosas que con Fortran, y más rápidas.
También puedes aprender los dos, por supuesto
Sería interesante saber más detalles de lo que quieres hacer.