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

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

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

有帮助吗?

解决方案

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

dir C:\strawberry\ack* /s

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

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

第一个是创建程序的批处理版本 PL2蝙蝠, ,这将执行 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 很重要。

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

其他提示

我没有问题只是安装ACK和从命令行运行它。

时正确安装草莓的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
...

没有正确安装应用:: 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”的,那么草莓没有正确安装(或不在你的PATH),你就需要解决这个问题。但除此之外,ACK被安装带有“ack.bat”包装成的“perl”的相同的路径,所以如果你可以运行“perl”的,你应该能够运行“ACK”。

另一种解决方案是用PAR ::包装机创建ack.exe - 他就不需要草莓在所有

如果他按照以下说明进行操作 这篇博文, ,他应该没事。我已经有一段时间没有安装 Strawberry Perl 了,但是 IIRC,在我安装了它之后,我就可以像在 Linux 机器上一样使用它了。(例如。 perl yourscripthere.pl)

1.安装草莓-perl的 2.Open perl的命令行 3.Write命令perl的test.pl

步骤

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top