如何使用Strawberry Perl运行程序?

时间:2009-03-20 18:54:03

标签: windows perl ack strawberry-perl

一位同事试图在他的Windows机器上使用ack(一个Perl程序),在Linux下尝试过它并决定他肯定想要使用它。他设法在他的机器上安装Strawberry Perl,但似乎无法弄清楚如何从命令提示符中使用它运行ack。他试着编辑#!但是我知道这不行。我很确定Strawberry perl正处于他的路径中。

使用Strawberry在Windows上的PATH中运行常规Perl程序需要做什么?

更新:我在网上看到一些关于PATHEXT变量的信息,但还不够。

5 个答案:

答案 0 :(得分:21)

首先,请注意该程序位于Path,而不仅仅是perl.exe。 Perl二进制文件和核心程序通常最终位于<installdir>\bin,但其他可能最终位于特定于站点的目录<installdir>\site\bin中。命令

dir C:\strawberry\ack* /s

可能有助于您的搜索。确保Path反映您的设置。

有两种常见的方法,至少我知道,从Windows命令提示符运行Perl程序。

第一种是使用pl2bat创建程序的批处理版本,该程序将使用该程序执行perl。安装的程序通常会自动执行此操作,因为MakeMakerModule::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中的顺序一样重要。

安装人员通常会处理最后两个步骤,但是如果您想添加自己的或需要修复它,这些知识非常有用。

答案 1 :(得分:17)

我没有遇到只是安装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”。

答案 2 :(得分:3)

另一个解决方案是使用PAR :: Packer创建ack.exe - 他根本不需要草莓。

答案 3 :(得分:1)

如果他遵循this blog post中的指示,他应该没问题。我没有必要安装Strawberry Perl一段时间了,但是IIRC,在我安装之后我能够像使用Linux盒子一样使用它。 (例如perl yourscripthere.pl

答案 4 :(得分:0)

1。安装Strawberry-Perl 2.打开perl命令行 3.写命令perl test.pl

Steps