【问题标题】:What is the most cross-platform way to execute a Perl script from Ant?从 Ant 执行 Perl 脚本的最跨平台方式是什么?
【发布时间】:2009-11-09 02:59:23
【问题描述】:

从 ant 执行 pPerl 脚本最跨平台的方法是什么?

Windows 不喜欢 Perl 脚本作为可执行文件。除了使用特定于操作系统的可执行文件运行 Perl 并将 Perl 脚本作为参数传递之外,还有其他方法吗?

【问题讨论】:

  • 您使用的是哪个 perl?您如何在 Ant 中指定它?你得到什么错误?
  • 对于 windows,这是为 MSWin32-x86-multi-thread 构建的 perl,v5.8.9(有 12 个注册补丁,有关详细信息,请参阅 perl -V)版权所有 1987-2008,Larry Wall Binary build 826 [290470] 由 ActiveState ActiveState.com 提供 2009 年 5 月 24 日 09:21:0I 我只想将 perl 脚本指定为可执行文件,因为 unix 使用 #!并且 windows 具有 .pl 扩展名绑定。

标签: perl ant cross-platform


【解决方案1】:

你考虑过蚂蚁<exec> 命令吗?您可以使用os 属性来指定要使用的操作系统。

问题是,您需要为每个已知的操作系统调用一个特定的调用 Perl 脚本将在其上使用。无论如何,进行操作系统检查可能更安全。

【讨论】:

    【解决方案2】:

    您是否尝试过创建自定义 Ant 目标来调用 Perl(我们称之为 call-perl-script),并且该任务的实现切换到基于操作系统的另一个子任务(如 call-perl-script-windowscall-perl-script-osx 等) ?

    基于this previous questionthisthis 的东西?

    【讨论】:

    • 我试图不进行特定的操作系统检查。
    • 没有办法。如果您希望您的 Ant 目标在不同的平台上工作,那么当涉及到特定于平台的功能(例如启动一个进程)时,您将不得不在某些时候编写特定于平台的代码。我的建议是把它很好地包装起来。
    【解决方案3】:

    Windows 不喜欢 Perl 脚本作为可执行文件。

    你要么配置windows来执行.pl文件(help ftype,help assoc)

    ftype PerlScript=perl.exe %1 %*
    assoc .pl=PerlScript
    

    或者您通过 pl2bat 运行脚本(如果您使用 ExtUtils::MakeMaker 安装脚本,则会自动发生)。如果您使用 pl2bat,请检查生成的文件并确保您对结果感到满意。

    您也可以使用 PAR/pp 创建一个 .exe

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-12
      • 2010-09-28
      • 2011-12-18
      • 2018-04-16
      • 2012-05-21
      • 2011-11-07
      相关资源
      最近更新 更多