문제

동료가 사용하려고 합니다. 확인 (Perl 프로그램)을 자신의 Windows 컴퓨터에서 Linux에서 사용해 본 후 확실히 사용하고 싶다고 결정했습니다.그는 그럭저럭 얻을 수 있었다 딸기 펄 자신의 컴퓨터에 설치했지만 명령 프롬프트에서 ack를 실행하려면 어떻게 해야 할지 모르는 것 같습니다.그는 #!하지만 나는 그것이 작동하지 않을 것이라는 것을 알았습니다.나는 Strawberry Perl이 그의 PATH에 있다고 확신합니다.

Strawberry를 사용하여 Windows의 PATH에서 일반 Perl 프로그램을 실행하려면 어떻게 해야 합니까?

업데이트:PATHEXT 변수에 대한 일부 정보가 온라인에서 보이지만 충분하지 않습니다.

도움이 되었습니까?

해결책

먼저, 프로그램이 다음 위치에 있는지 주의하세요. Path, 뿐만 아니라 perl.exe.Perl 바이너리와 핵심 프로그램은 일반적으로 다음과 같이 끝납니다. <installdir>\bin, 그러나 다른 것들은 사이트 특정 디렉토리에 있을 수 있습니다 <installdir>\site\bin.명령

dir C:\strawberry\ack* /s

검색에 도움이 될 수 있습니다.당신의 Path 설정을 반영합니다.

적어도 내가 아는 한 Windows 명령 프롬프트에서 Perl 프로그램을 실행하는 두 가지 일반적인 방법이 있습니다.

첫 번째는 다음을 사용하여 프로그램의 배치 버전을 만드는 것입니다. 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이 올바르게 설치되어 있습니까?cmd.exe에서 "perl"을 실행할 수 있습니까?

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"도 실행할 수 있습니다.

또 다른 해결책은 PAR::Packer를 사용하여 ack.exe를 만드는 것입니다. 딸기는 전혀 필요하지 않습니다.

그가 지시를 따랐다면 이 블로그 게시물, 그는 괜찮을 것입니다.한동안 Strawberry Perl을 설치할 필요가 없었지만 IIRC를 설치한 후에는 마치 Linux 박스에 있는 것처럼 사용할 수 있었습니다.(예: perl yourscripthere.pl)

1. INSTALL Strawberry-Perl 2. Open Perl CommandLine 3. 명령 Perl Test.pl

단계

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top