为什么默认安装 a2p(Awk 到 Perl 转换器)?为什么我想将 Awk 转换为 Perl?

为什么默认安装 a2p(Awk 到 Perl 转换器)?为什么我想将 Awk 转换为 Perl?

我很惊讶地发现a2p我的 Linux 发行版中默认安装了该实用程序。

a2p是一个命令行实用程序,可将awk节目来自标准输入到一个珀尔它输出到的程序标准输出

为什么我想要转换awk编程到一个珀尔当我有一个程序时awk安装了解释器吗?

为什么会这样Linux发行版包含a2p在其默认安装中吗?

答案1

您可能希望使用这些工具来提高脚本的效率perl

perl如果您有一个更大的程序并且您想要集成awk脚本的功能而不调用子进程,您可能会想要这样做。您可以调用a2p生成的代码并将其集成到现有的 perl 脚本中。

有一个类似的实用程序,find2perl它采用find命令行并生成perl代码来执行相同的操作,从而避免调用find子进程。

这些是脚本的优化工具perl

答案2

  1. 为什么默认安装了? :这取决于您正在使用的发行版的开发人员/维护人员。

  2. 为什么你需要a2p

有一个 awk 习惯用法,将 int() 放在字符串表达式周围以强制进行数字解释,即使参数始终是整数。这在 perl 中通常是不需要的,但 a2p 无法判断参数是否总是整数,因此将其保留。您可能希望删除它。

Perl 区分数字比较和字符串比较。 Awk 对这两种情况都有一个运算符,它在运行时决定进行哪一个比较。此时 A2p 并不尝试完成 awk 模拟的完整工作。相反,它会猜测您想要哪一个。它几乎总是正确的,但它可能被欺骗。所有此类猜测都标有注释“#???”。你应该仔细检查并检查它们。您可能希望使用 perl 的 -w 开关至少运行一次,如果您在应该使用 eq 的地方使用 ==,它会警告您。

了解更多信息 :A2P

相关内容