Как запустить программы с Strawberry Perl?

сотрудник пытается использовать ack (программа Perl) на его машине Windows, попробовав ее под Linux и решив, что он определенно хочет ее использовать. Ему удалось добраться Клубничный Perl установлен на его машине, но не может понять, что делать, чтобы заставить ack работать с ним из командной строки. Он попытался отредактировать #! линия, но я знал, что это не сработает. Я почти уверен, что клубничный Перл стоит у него на пути.

Что нужно сделать, чтобы запустить общая программа Perl в вашем пути на Windows с помощью Strawberry?

Update: я вижу некоторую информацию в интернете о переменной PATHEXT, но недостаточно.

4 ответов


во-первых, будьте осторожны, что программа находится в Path не только perl.exe. Двоичные файлы Perl и основные программы обычно заканчиваются в <installdir>\bin, но другие могут оказаться в каталоге конкретного сайта <installdir>\site\bin. Команда

dir C:\strawberry\ack* /s

может помочь вашему поиску. Убедитесь, что ваш Path отражает ваши установки.

есть два распространенных способа, по крайней мере, я знаю, чтобы запустить программу Perl из командной строки Windows.

первым является создание пакетная версия программы с pl2bat, который будет выполнять perl С программой. Установленные программы обычно делают это автоматически, потому что MakeMaker и Module::Build об этом позаботиться.

второй-создать . Это делается путем создания раздела реестра HKEY_LOCAL_MACHINE\SOFTWARE\Classes\.pl\Shell\Open\Command (или HKEY_CURRENT_USER если это только для текущего пользователя) и установить (Default) значение

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

таким образом, вы можете назвать программы, назвав их the


у меня не было проблем с установкой ack и запуском его из командной строки.

правильно ли установлен Strawberry Perl? Можете ли вы запустить "perl" из 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
...

правильно ли установлено приложение::Ack?

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

Если это так, я не понимаю, почему вы не можете запустить " ack " из командной строки:

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.

если он не работает, где в этой цепи сломаны вещи? Например, если вы не можете запустить "perl" из командной строки, то Strawberry не установлен правильно (или не находится на вашем пути), и вам нужно это исправить. Но в противном случае ack устанавливается с "ack.bat " обертка в тот же путь, что и "perl", поэтому, если вы можете запустить "perl", вы должны иметь возможность запустить "ack".


другое решение-создать ack.exe с PAR:: Packer-ему вообще не нужна клубника.


если он следовал указаниям в этот блог он должен быть в порядке. Мне не нужно было устанавливать Strawberry Perl какое-то время, но IIRC, после того, как я установил его, я смог использовать его так же, как если бы я был на linux box. (например,perl yourscripthere.pl)