Как запустить программы с помощью 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

меры