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