代码之家  ›  专栏  ›  技术社区  ›  Miserable Variable

如何使Perl的A2P支持gawk?

  •  2
  • Miserable Variable  · 技术社区  · 15 年前

    我有一些awk脚本使用了cygwin的gawk。现在,我需要将这些脚本传递给那些没有安装cygwin,但确实安装了perl的同事。我希望我可以使用Cygwin中包含的A2P,但是失败了,错误如下:

    Undefined subroutine &main::gensub called at ./t.pl line 18, <> line 1.
    

    我希望现有的Perl库/模块能够实现这些方法。有什么指针吗?

    1 回复  |  直到 15 年前
        1
  •  5
  •   jmcnamara    15 年前

    这个 gensub() 函数不受支持 a2p . 如果修改代码以使用 gsub() 相反,它应该编译。

    或者,您可以添加 子集() 子程序到翻译后的Perl程序的末尾,以模拟 子集() 功能。

    但是,Perl代码由 A2P 不是很容易维护,所以我只能用它作为最后的手段。

    如果gawk程序不调用其他cygwin/unix实用程序,那么最好将Windows gawk可执行文件与程序一起分发给同事。