strawberry programa para instalar gratis for descargar compilador windows perl ack strawberry-perl

windows - para - ¿Cómo ejecuto programas con Strawberry Perl?



perl 64 bits (4)

Un compañero de trabajo está tratando de usar ack (un programa de Perl) en su máquina de Windows, lo ha probado bajo Linux y decidió que definitivamente quiere usarlo. Se las arregló para instalar Strawberry Perl en su máquina, pero parece que no sabe qué hacer para que funcione desde el símbolo del sistema. Trató de editar el #! línea, pero sabía que eso no funcionaría. Estoy bastante seguro de que Strawberry Perl está en su PATH.

¿Qué necesitas hacer para ejecutar un programa general de Perl en tu PATH en Windows usando Strawberry?

Actualización: estoy viendo información en línea sobre la variable PATHEXT, pero no lo suficiente.


No he tenido un problema simplemente instalando ack y ejecutándolo desde la línea de comando.

¿Strawberry Perl está instalado correctamente? ¿Puedes ejecutar "perl" desde cmd.exe?

C:/> perl -V Summary of my perl5 (revision 5 version 10 subversion 0) configuration: Platform: osname=MSWin32, osvers=5.1, archname=MSWin32-x86-multi-thread ...

¿App Ack se instaló correctamente?

C:/> cpan App::Ack ... Installing C:/strawberry/perl/site/lib/App/Ack.pm Installing C:/strawberry/perl/site/lib/App/Ack/Plugin.pm Installing C:/strawberry/perl/site/lib/App/Ack/Repository.pm Installing C:/strawberry/perl/site/lib/App/Ack/Resource.pm Installing C:/strawberry/perl/site/lib/App/Ack/Plugin/Basic.pm Installing C:/strawberry/perl/bin/ack Installing C:/strawberry/perl/bin/ack.bat Writing C:/strawberry/perl/site/lib/auto/ack/.packlist Appending installation info to C:/strawberry/perl/lib/perllocal.pod PETDANCE/ack-1.88.tar.gz C:/strawberry/c/bin/dmake.EXE install UNINST=1 -- OK

Si es así, no veo por qué no puedes ejecutar "ack" desde la línea de comando:

C:/> ack --version ack 1.88 Copyright 2005-2009 Andy Lester, all rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

Si no funciona, ¿en qué parte de esa cadena se han roto las cosas? Por ejemplo, si no puede ejecutar "perl" desde la línea de comando, entonces Strawberry no se instaló correctamente (o no está en su RUTA) y tendrá que solucionarlo. Pero de lo contrario, ack se instala con un contenedor "ack.bat" en la misma ruta que "perl", por lo que si puedes ejecutar "perl" deberías poder ejecutar "ack".


Otra solución es crear ack.exe con PAR :: Packer: no necesitaría Strawberry en absoluto.


Si ha seguido las instrucciones en esta publicación de blog , debería estar bien. No he tenido que instalar Strawberry Perl desde hace un tiempo, pero IIRC, después de instalarlo, pude usarlo igual que si estuviera en una caja Linux. (por ejemplo, perl yourscripthere.pl )


Primero, tenga cuidado de que el programa esté en la Path , no solo en perl.exe . Los binarios de Perl y los programas principales generalmente terminan en <installdir>/bin , pero otros pueden terminar en el directorio específico del sitio <installdir>/site/bin . El comando

dir C:/strawberry/ack* /s

podría ayudar a su búsqueda. Asegúrate de que tu Path refleja tu configuración.

Hay dos formas comunes, al menos que yo sepa, de ejecutar un programa Perl desde el Símbolo del sistema de Windows.

El primero es crear una versión por lotes del programa con pl2bat , que ejecutará perl con el programa. Los programas instalados generalmente hacen esto automáticamente porque MakeMaker y Module::Build se encargan de esto.

El segundo es crear una asociación de archivos .pl . Esto se hace creando la clave de registro HKEY_LOCAL_MACHINE/SOFTWARE/Classes/.pl/Shell/Open/Command (o HKEY_CURRENT_USER si es solo para el usuario actual) y establece el valor (Default) en

"C:/strawberry/perl/bin/perl.exe" "%1" %*

De esta forma, puede llamar a los programas simplemente al nombrarlos con la extensión .pl . Ahora puede invocar el programa con program.pl .

Puede haber notado que puede llamar a un programa en Windows sin la extensión. El programa se busca en la Path , pero cuando no hay extensión, se usa PATHEXT para completar el nombre. Añada .pl a la lista, y puede invocar el programa solo con el program . Tenga en cuenta que el orden en esta lista es importante para la búsqueda, al igual que el orden en la Path importa.

Por lo general, los instaladores se encargan de los dos últimos pasos, pero este conocimiento es útil si desea agregar el suyo o si necesita solucionarlo.