Вопрос

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

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

Обновлять:Я вижу в Интернете некоторую информацию о переменной PATHEXT, но ее недостаточно.

Это было полезно?

Решение

Во-первых, будьте осторожны, чтобы программа находилась в 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 имеет значение.

Установщики обычно берут на себя последние два шага, но эти знания полезны, если вы хотите добавить свой собственный или вам нужно его исправить.

Другие советы

У меня не было проблем, просто установив 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
...

App::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».

Другое решение — создать ack.exe с PAR::Packer — Strawberry ему вообще не понадобится.

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

1. Установить клубнику-perl 2.open perl Commandline 3. Команда write perl test.pl

Шаги

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top