Solución:
Primero, tenga cuidado de que el programa esté en el Path
, No solo perl.exe
. Los programas binarios y centrales de Perl generalmente terminan en <installdir>bin
, pero otros pueden terminar en el directorio específico del sitio. <installdir>sitebin
. El comando
dir C:strawberryack* /s
podría ayudar en su búsqueda. Asegúrese de que su Path
refleja su configuración.
Hay dos formas comunes, al menos que yo sepa, de ejecutar un programa Perl desde el símbolo del sistema de Windows.
La primera es crear una versión por lotes del programa con pl2bat, que ejecutará perl
con el programa. Los programas instalados suelen hacer esto automáticamente porque MakeMaker
y Module::Build
cuida de esto.
El segundo es crear un .pl
Asociación de archivos. Esto se hace creando la clave de registro HKEY_LOCAL_MACHINESOFTWAREClasses.plShellOpenCommand
(o HKEY_CURRENT_USER
si es solo para el usuario actual) y configure el (Default)
valor para
"C:strawberryperlbinperl.exe" "%1" %*
De esa forma, puede llamar a programas simplemente nombrándolos con el .pl
extensión. Ahora puede invocar el programa con program.pl
.
Es posible que haya notado que puede llamar a un programa en Windows sin la extensión. El programa se busca en el Path
, pero cuando no hay extensión, PATHEXT
se utiliza para completar el nombre. Adjuntar .pl
a la lista, y puede invocar el programa solo con program
. Tenga en cuenta que el orden en esta lista es importante para la búsqueda, al igual que el orden en Path
asuntos.
Los instaladores generalmente se encargan de los dos últimos pasos, pero este conocimiento es útil si desea agregar el suyo o necesita solucionarlo.
No he tenido ningún problema al instalar ack y ejecutarlo desde la línea de comandos.
¿Está Strawberry Perl instalado correctamente? ¿Puede 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:strawberryperlsitelibAppAck.pm
Installing C:strawberryperlsitelibAppAckPlugin.pm
Installing C:strawberryperlsitelibAppAckRepository.pm
Installing C:strawberryperlsitelibAppAckResource.pm
Installing C:strawberryperlsitelibAppAckPluginBasic.pm
Installing C:strawberryperlbinack
Installing C:strawberryperlbinack.bat
Writing C:strawberryperlsitelibautoack.packlist
Appending installation info to C:strawberryperllib/perllocal.pod
PETDANCE/ack-1.88.tar.gz
C:strawberrycbindmake.EXE install UNINST=1 -- OK
Si es así, no veo por qué no puede 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 rompen las cosas? Por ejemplo, si no puede ejecutar “perl” desde la línea de comandos, entonces Strawberry no se instaló correctamente (o no está en su RUTA) y tendrá que arreglar eso. Pero de lo contrario, ack se instala con un contenedor “ack.bat” en la misma ruta que “perl”, por lo que si puede ejecutar “perl”, debería poder ejecutar “ack”.
Otra solución es crear ack.exe con PAR :: Packer; no necesitaría Strawberry en absoluto.