【问题标题】:Setting Up Active Perl 5.8.6 on windows 7在 Windows 7 上设置 Active Perl 5.8.6
【发布时间】:2013-03-12 18:16:58
【问题描述】:

我知道以前有人问过这个问题,但我找到的所有解决方案都不适合我。这就是我想要做的。

我需要能够通过命令提示符运行 perl 脚本:

helloworld param1 param2

如果我现在尝试这样做,我的参数不会在@ARGV 中捕获。但是,如果我输入:

perl helloworld.pl param1 param2

参数在@ARGV 中捕获。

我已经从关于这个主题的其他帖子中完成了以下操作:

assoc .pl=Perl
ftype Perl="C:\Perl\Bin\perl.exe" "%1" %*

我还点击了开始->默认程序->将文件类型或协议与程序关联。搜索 .pl 并浏览到 C:\Perl\bin\perl.exe。

我还用regedit将HKCR\Perl\shell\open\command中的open值改为:

(Default) REG_SZ "C:\Perl\Bin\perl.exe" %1 %*

完成所有这些操作后,我仍然无法通过键入以下内容来执行脚本:

helloworld param1 param2

对于我可能错过的任何其他 cmet 或建议,我将不胜感激......

【问题讨论】:

  • 你能升级 ActivePerl 吗?自 5.8.6(九年前)以来,已经做了很多工作。我建议卸载它,删除所有与 Perl 相关的操作系统更改,然后安装最新版本。它应该自行设置所有内容。
  • 是的,我希望我能做到,这些东西是一个旧过程的一部分,我需要再跛行一段时间,直到它消失。我尝试使用较新的版本运行,但还有其他问题..
  • 您在helloworld.pl param1 param2 中省略了.pl - 这是故意的吗?
  • 是的,据我了解,通过将 .pl 添加到 PATHEXT 环境变量,您也可以在执行脚本时将 .pl 关闭。无论如何,我都能用 XP 做到这一点......
  • 这可能是REG_SZREG_EXPAND_SZ 的问题,如本答案所述:stackoverflow.com/a/1695206/100754?我现在没有 Windows 7 计算机,所以无法检查。

标签: perl


【解决方案1】:

你说你有

"C:\Perl\Bin\perl.exe" "%1" %*

但是你把它改成了

"C:\Perl\Bin\perl.exe" %1 %*

应该是前者。


根据您描述的设置,您应该使用

helloworld.pl param1 param2
          ^^^

如果要省略.pl,则必须将.pl 添加到PATHEXT env var。

>set PATHEXT=.PL;%PATHEXT%

>type a.pl
print "$ARGV[0], $ARGV[1]!\n";

>a Hello World
Hello, World!

(当然,您可能希望通过更改启动环境而不是仅更改此 shell 来使更改更持久。)

【讨论】:

    【解决方案2】:

    我下载了以下应用程序:

    http://creativelement.com/powertools/

    我用它来创建 .pl 与 perl.exe 的关联,然后我可以在没有 perl 或 .pl 的情况下运行 perl 脚本,它也会接受我的参数。与我在这些线程中阅读的所有内容相比,我不确定它做了什么,但我只是想我会与大家分享。

    谢谢

    【讨论】:

      猜你喜欢
      • 2016-10-26
      • 2011-09-02
      • 1970-01-01
      • 2011-11-26
      • 2011-02-06
      • 2014-11-04
      相关资源
      最近更新 更多