¿Qué versión de Perl debo usar en Windows? [cerrado]


98

El sitio web win32.perl.org proporciona referencias a varias distribuciones de Perl para MS Windows.

Durante mucho tiempo he estado usando ActivePerl de ActiveState pero recientemente cambié a Strawberry Perl .

En mi humilde opinión, la única ventaja que Active Perl todavía tiene sobre Strawberry Perl es el hecho de que viene con Perl Tk, lo que significa que es fácil de instalar Devel :: ptkdb, el depurador gráfico. Aparte de eso, creo que Strawberry Perl tiene todas las ventajas.


Desde esta publicación, comencé a empaquetar Strawberry Perl con muchos módulos adicionales, incluidos Moose, Dancer y Padre. Es posible que los lectores también quieran considerar esto: dwimperl.com
szabgab

Respuestas:


80

Strawberry Perl es cada vez mejor. Un problema que he tenido repetidamente con ActiveState es que mis módulos a veces no se instalan porque necesito una actualización a un módulo principal, pero no lo permiten. Por lo tanto, todos los que no usan Windows pueden usar mi código, pero no pueden hacerlo con Perl de ActiveState.

ActiveState también tiene un sistema de compilación muy poco fiable que a menudo no informa exactamente por qué no se pudo compilar un módulo. Me cansé tanto de enviar correos electrónicos y pedir esta información que finalmente me di por vencido. Quiero que mi código se ejecute en Windows, pero si ActiveState no me proporciona esa información y no me da ninguna opción para actualizar los módulos principales, simplemente no puedo usarlo. Algunos de mis módulos NO tienen fallas de compilación en ningún sistema operativo, excepto aquellos con ActiveState Perl. Admite Strawberry Perl y no te preocupes por ActiveState.

Si ActiveState ha arreglado su sistema de compilación y su política de 'no actualizar a los módulos centrales', vale la pena volver a visitarlo.


8
Es posible actualizar los módulos centrales de AS Perl 5.8.8 build 518 (lanzado en enero de 2007). También actualizaron su sistema de compilación CPAN en 2008, pero no sé exactamente cuándo.
Alexandr Ciornii

1
Strawberry Perl es genial. Sin embargo, si usa MSys Bash como su shell, existe un problema conocido por el cual los comandos como cpanno funcionan.
Coronel Panic

30

No existe una distribución única de Perl óptima. Vanilla Perl ( Perl reubicable y redistribuible) y su Strawberry Perl más amigable para los desarrolladores tienen un potencial significativo.

Sin embargo, hay una muy buena razón por la que ActivePerl es tan popular. Las ventajas se presentan principalmente en forma de facilidad de implementación para los usuarios finales (no es necesario un compilador para usar su administrador de paquetes, PPM). El ActiveState PDK (Perl Development Kit) también es una forma muy agradable de empaquetar un binario completo de Windows que no requiere la instalación de Perl en la máquina del usuario.

Desafortunadamente, muchos módulos CPAN muy buenos (como los enlaces de Perl para OpenSSL) no están disponibles a través del repositorio de ActiveState.

Como la mayoría de las cosas, debe hacer su selección basándose en qué distribución se adapta mejor a sus necesidades.


PerlApp parece una herramienta útil (no la he comparado con Par :: Packer), pero el PDK en el que viene tiene un precio de $ 300.
Nate Glenn

17

Utilizo principalmente ActivePerl, pero realmente me gusta hacia dónde se dirige Strawberry Perl. Me encanta que el shell cpan "simplemente funciona" y no tengo que pasar por un montón de obstáculos para instalar módulos XS. (por ejemplo, ExtUtils :: FakeConfig, aunque eso es menos necesario en las compilaciones de ActivePerl más recientes). También estoy entusiasmado con la posibilidad de Perl en una memoria USB. La versión para desarrolladores de Portable Perl ya es bastante útil.

Estoy de acuerdo en que la principal ventaja de ActivePerl es Tk listo para usar, pero tenga en cuenta que a partir de 5.10 ActivePerl ya no se envía con Tk por defecto. En su lugar, se envía con Tkx.


13

El futuro es definitivamente Strawberry Perl. Sin embargo, cualquiera que elija (y este problema no es exclusivo de Windows), si está distribuyendo el resultado final a otras máquinas, tendrá que tener cuidado con las instrucciones de instalación / instalación que proporcione.


6

Strawberry Perl es más como Perl en * nix. Viene con MinGW que podría ser útil por sí solo. Los módulos Perl también se pueden instalar con ppm o cpan.


1
Nota: si instala mingw junto con strawberry perl, tenga en cuenta que strawberry perl puede estar usando diferentes versiones de las aplicaciones de minsys. Tuve algunos problemas importantes para obtener Strawberry Perl para construir Win32 :: OLE y otros módulos hasta que eliminé mingw de mi ruta.
Robert P

Si realmente desea Perl en Windows como Perl en * nix, instale SUA / SFU (no instale el Perl que viene con) y use el Perl de Debian Interix / pkgsrc-interix.
MkV

4

Yo prefiero con mucho Strawberry Perl. Por un lado, instala gcc como parte de mingwin, para que pueda instalarlo directamente desde CPAN.

Usé el perl de ActiveState por un tiempo, pero tenía muchos problemas de una máquina a otra a pesar de que estaban (aparentemente) configuradas de manera idéntica. El empaque de su módulo PPM también dejó un mal sabor de boca. Hace que administrar paquetes sea muy simple, pero usted confía en ellos para actualizar PPM después de las actualizaciones de CPAN. Además, PPM no es de ninguna manera el contenido completo del CPAN; La última vez que usé ActivePerl, tuve dificultades para encontrar todos los módulos que necesitaba, y los que estaban allí eran a menudo una versión antigua.


2
Tengo curiosidad por saber qué se calificó con un voto negativo.
gWaldo

3

Siempre uso Cygwin (xterms con bash son mucho mejores que cmd windows) y el Perl que viene con él. Instalo módulos Perl con el shell CPAN (el comando "cpan"); funciona bien.


3

ActiveState Perl se ha considerado el Perl de Windows de facto durante bastante tiempo. Si bien tiene muchos defectos y muchos de nosotros usamos algo más, sigue siendo muy popular. Si estuviera construyendo código Perl para ser ejecutado en una máquina con Windows (que no sea la suya), consideraría escribirlo con la vista puesta en una instalación de AS Perl por defecto (o por defecto como podría obtenerlo) ejecutándolo. Cualquier otra cosa y está introduciendo barreras de entrada para otras personas que intenten usar su aplicación más tarde.


AFAIK, PAR pp funciona bien con Strawberry, lo cual es una gran ventaja en términos de distribuir sus propias aplicaciones porque IIUC necesitará una licencia OEM para poder distribuir aplicaciones compiladas con pp si usa sus DLL.
Sinan Ünür

3
@Sinan, su declaración sobre las licencias de ActivePerl y PAR es incorrecta. Consulte la cláusula 4 de la licencia The license also allows You to redistribute parts of the Package as part of an application generated by wrapping tools such as PAR, PerlApp or Perl2Exe. However, this License does not allow You to (a) redistribute the Package as a whole, (b) use its parts to create a language distribution, or (c) redistribute the PerlScript, Perl for ISAPI or PerlEx components with Your application. activestate.com/activeperl/license
daotoad

@daotoad Hmmmm ... Podría jurar que una versión anterior no lo permitía, pero ni siquiera estoy seguro de si estoy recordando correctamente. Gracias por la corrección.
Sinan Ünür

2

Tuve problemas importantes con Strawberry y sentí que no había apoyo. La buena gente de PerlMonks no pudo ayudarme y me di por vencido. Si esta página te deja con cierta falta de confianza, ahí está tu respuesta.


1

El código que escribo aterriza en compañías Fortune 500, por lo que un sentimiento "corporativo" es útil. He usado ActivePerl hasta ahora y ha funcionado bien tanto para las herramientas internas como para la distribución a esos grandes clientes.


1

Estoy usando Active State Perl 5.014, que funciona bien.

El problema es que no tiene la última versión de Padre (el IDE, entorno de depuración).

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.