如何使用Strawberry Perl运行程序?
一位同事试图在他的Windows机器上使用ack(一个Perl程序),在Linux下尝试了它,并决定他肯定想要使用它。 他设法将Strawberry Perl安装在他的机器上,但似乎无法弄清楚如何通过命令提示符使ack运行。 他试图编辑#! 线,但我知道这是行不通的。 我很确定Strawberry perl在他的PATH中。
在Windows上使用Strawberry在PATH中运行一般Perl程序需要做什么?
更新:我在网上看到有关PATHEXT变量的一些信息,但还不够。
首先,请注意程序在Path
,而不仅仅是perl.exe
。 Perl二进制文件和核心程序通常以<installdir>bin
结尾,但其他文件最终可能位于特定于站点的目录<installdir>sitebin
。 命令
dir C:strawberryack* /s
可能有助于您的搜索。 确保你的Path
反映你的设置。
至少我知道,有两种常用方法可以从Windows命令提示符运行Perl程序。
首先是用pl2bat创建一个批处理版本的程序,该程序将执行perl
程序。 安装的程序通常会自动执行此操作,因为MakeMaker
和Module::Build
会处理此问题。
第二个是创建一个.pl
文件关联。 这是通过创建注册表项HKEY_LOCAL_MACHINESOFTWAREClasses.plShellOpenCommand
(或HKEY_CURRENT_USER
如果它仅适用于当前用户)并将(Default)
值设置为
"C:strawberryperlbinperl.exe" "%1" %*
这样,您可以通过用.pl
扩展名命名它们来调用程序。 现在你可以用program.pl
调用program.pl
。
您可能已经注意到,您可以在没有扩展名的情况下在Windows上调用程序。 该程序在Path
搜索,但是当没有扩展名时,使用PATHEXT
来完成名称。 将.pl
附加到列表中,您可以使用program
调用该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:strawberryperlsitelibAppAck.pm
Installing C:strawberryperlsitelibAppAckPlugin.pm
Installing C:strawberryperlsitelibAppAckRepository.pm
Installing C:strawberryperlsitelibAppAckResource.pm
Installing C:strawberryperlsitelibAppAckPluginBasic.pm
Installing C:strawberryperlbinack
Installing C:strawberryperlbinack.bat
Writing C:strawberryperlsitelibautoack.packlist
Appending installation info to C:strawberryperllib/perllocal.pod
PETDANCE/ack-1.88.tar.gz
C:strawberrycbindmake.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 - 他根本不需要草莓。
链接地址: http://www.djcxy.com/p/8285.html