Como alguien que conoce a Ruby, ¿vale la pena aprender Perl?

Sé mucho más Ruby que Perl, pero el contraste principal es:

El código de Perl es mucho más terser que Ruby

Si desea un código conciso que haga su trabajo en el menor número de líneas, Perl es mejor. Si quieres un código expresivo, casi poético y mucho más legible en general, y no te importa el costo de unos pocos caracteres adicionales, Ruby es mucho mejor.

Esto se manifiesta de varias maneras en la práctica:
– Los trazadores de líneas de Perl One (los comandos de una línea de Perl que realizan la manipulación por lotes: de un montón de archivos, por ejemplo) son un culto en sí mismos. Vea los forros de Perl One para familiarizarse.
– Perl se adapta mejor si la tarea principal es expresiones regulares – La propia sintaxis de expresiones regulares de Ruby es bastante buena, posiblemente cercana a Perl, pero los casos de uso típicos de hacer una comparación de patrones de texto con expresiones regulares se expresan mejor en Perl, en mi opinión. Muchos desarrolladores hacen expresiones regulares con grep, y una progresión natural para una manipulación más compleja no soportada por grep es a través de sed o awk para una clase de tareas, o para un poder más general, usar Perl.
– Perl se usa en la línea de comandos o con scripts de lotes muy cortos mucho más eficazmente que Ruby, que generalmente implica scripts más largos

Por lo tanto, en el fondo, si la mayor parte del tiempo es manipulación y comparación de texto, y desea soluciones rápidas en la línea de comandos o con scripts cortos, Perl definitivamente vale la pena aprender, además de Ruby. Si no, tal vez no 🙂

Perl es definitivamente un lenguaje útil, para más que solo pequeñas herramientas y scripts de administrador de sistemas.

Primero, lea esto: ¿Perl sigue siendo un lenguaje útil y viable?

Tiene un buen soporte para async io, utilizando cualquiera de una serie de marcos.

Tiene un buen soporte para la orientación a objetos utilizando Moose.

Tiene excelentes regexes incorporados.

Hay un montón de buen material de referencia para él en la web y en la impresión.
Hay muchos lugares en línea donde puede obtener ayuda con las preguntas de Perl.
El idioma está en uso activo por una gran población diversa.

Y por supuesto, hay CPAN. Para casi cualquier problema que pueda imaginar, hay una solución Perl para ese problema en CPAN.

Y por último, pero no menos importante, existe la familia de módulos Inline en CPAN, que le permiten insertar código de otros idiomas en sus programas perl. Teniendo en cuenta su primer idioma, considere utilizar Inline :: Ruby para permitirle poner el código fuente de Ruby directamente en un programa Perl. Esto es muy superior al uso de la gema ruby-perl desde dentro de ruby, ya que Inline :: Ruby permite que los números, cadenas, funciones y objetos de perl se pasen hacia y desde el código de ruby, mientras que ruby-perl solo permite cadenas.

Sobre el tema de la terseness y la ilegibilidad, los programas malos se pueden escribir en cualquier idioma. Perl le permite colocar espacios en blanco y comentarios prácticamente en cualquier lugar, incluso en una expresión regular, si ha usado la opción / x. Por lo tanto, si utiliza nombres de funciones y nombres de variables adecuados, sangría coherente y documenta su código, aún así será legible para los seres humanos años después de haberlo escrito.

Depende de lo que quiera hacer con él y de lo que se necesita si quiere hacer esto como un trabajo. Siempre se puede aprender Perl solo para ampliar su vocabulario de programación (muchas de las ideas de Perl se han difundido en Ruby y otros lenguajes más nuevos). Usé Perl porque me lo enseñaron al aprender bioinformática, pero sugeriría Python en su lugar.

No. Aprende python y bash. Han pasado más de 10 años desde que Perl era un lugar común para las secuencias de comandos sysadmin. Es posible que aún lo encuentres en la academia y en entornos corporativos antiguos, pero ya no vale la pena aprender.

El siguiente comando, sin embargo, vale la pena:

perl -pe ‘s / regex //’

Esto se comporta mejor que y puede ser usado como un reemplazo para sed cuando se usa la línea de comando de tus shells. El análisis de texto de Perl sigue siendo el mejor