Как запустить программы с помощью Strawberry Perl?
Сотрудник пытается использовать ack (программу Perl) на своей машине под Windows, попробовав его под Linux и решил, что он определенно хочет используй это. Ему удалось установить Strawberry Perl, установленный на его машине, но не может показаться, что нужно сделать, чтобы заставить ack работать с ним из команды незамедлительный. Он попробовал редактировать #! но я знал, что это не сработает. Я уверен, что клубника perl находится в его PATH.
Что вам нужно сделать, чтобы запустить общую программу Perl в вашей PATH на Windows с помощью Strawberry?
Обновление: я вижу некоторую информацию в Интернете о переменной PATHEXT, но недостаточно.
Ответы
Ответ 1
Во-первых, будьте осторожны, чтобы программа находилась в Path
, а не только perl.exe
. Бинарные файлы Perl и основные программы обычно заканчиваются на <installdir>\bin
, но другие могут оказаться в каталоге конкретного сайта <installdir>\site\bin
. Команда
dir C:\strawberry\ack* /s
может помочь вам в поиске. Убедитесь, что ваш Path
отражает вашу настройку.
Существует два общих способа, по крайней мере, я знаю, для запуска программы Perl из командной строки Windows.
Во-первых, создать пакетную версию программы с pl2bat, которая будет выполнять perl
с помощью программы. Установленные программы обычно делают это автоматически, потому что MakeMaker
и Module::Build
позаботятся об этом.
Во-вторых, для создания ассоциации .pl
. Это делается путем создания раздела реестра HKEY_LOCAL_MACHINE\SOFTWARE\Classes\.pl\Shell\Open\Command
(или HKEY_CURRENT_USER
, если это только для текущего пользователя) и установите для параметра (Default)
значение
"C:\strawberry\perl\bin\perl.exe" "%1" %*
Таким образом, вы можете вызывать программы, просто называя их с расширением .pl
. Теперь вы можете вызвать программу с помощью program.pl
.
Возможно, вы заметили, что вы можете вызывать программу в Windows без расширения. Поиск программы выполняется в Path
, но если для расширения имени не используется расширение, PATHEXT
. Добавьте в список .pl
, и вы можете вызвать программу только с помощью program
. Обратите внимание, что порядок в этом списке важен для поиска, как и порядок в Path
.
Установщики обычно заботятся о последних двух шагах, но это знание полезно, если вы хотите добавить свой собственный или его исправить.
Ответ 2
У меня не было проблемы с установкой 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 не установил правильно (или не находится в вашем PATH), и вам нужно это исправить. Но в противном случае ack устанавливается с помощью оболочки "ack.bat" в тот же путь, что и "perl", поэтому, если вы можете запустить "perl", вы сможете запустить "ack".
Ответ 3
Другим решением является создание ack.exe с PAR:: Packer - ему вообще не понадобится Strawberry.
Ответ 4
Если он выполнил указания в в этом сообщении в блоге, он должен быть в порядке. Мне не нужно было устанавливать Strawberry Perl на некоторое время, но IIRC, после того, как я его установил, я смог использовать его так же, как если бы я был в ящике Linux. (например, perl yourscripthere.pl
)
Ответ 5
1.Установите клубнику-perl 2. Откройте командную строку perl 3. Напишите команду perl test.pl
меры