perl - Perl 中的 CHECK、UNITCHECK 和 INIT block 有什么用处?

标签 perl compilation

我知道他们都在做什么,但从来没有发现自己处于需要他们中的任何一个的境地。我用过BEGIN多次阻止和END偶尔。 BEGIN当您需要在代码运行之前调整环境时特别有用,我使用了 END在某些调试情况下捕获难以追踪的 fatal error 的重要状态信息。

你用过CHECK , UNITCHECKINIT ?如果有,是为了什么?并且会BEGIN block 由于某种原因还不够?

block 的文档位于 PerlDoc .

最佳答案

CHECK block 的一个有趣用法是在 Simon Cozens (O'Reilly) 在第 1 章的“高级 Perl 编程”中的“稍后使用 CHECK 做事”一节中。他展示了如何实现“final”类 java 属性

此外,Devel::Sub::Trace 使用 INIT block 来证明跟踪(此信息来自用于 Devel::Hook 的 POD,它是用于处理这些命名 block 的模块)

关于perl - Perl 中的 CHECK、UNITCHECK 和 INIT block 有什么用处?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1671540/

相关文章:

Linux/苹果机 : What is good method to determine platform at compile time?

c - 与 c 相比,Go 的二进制大小

java - 如果不是所有公共(public)事物都是 JavaDoc,如何强制编译警告?

java - 不使用命令行编译的基本java程序

perl - 在 perl 中使用 Redis.pm 管道

perl - 如何告诉 CPAN 关于 make 和 cc 的路径

linux - 创建一个包含 2 列的文件,每列来自不同的文件

Perl 催化剂 Controller 重定向不起作用

regex - 删除 perl 正则表达式中顽固的第一个字符串空格

css - Less 是在编译为 css 时在 url 上添加不需要的代码