0

PL_check是 Perl 公共 API 公开的变量:

数组,由操作码索引,在 Perl 代码编译期间将在 optree 构建的“检查”阶段调用的函数。对于大多数(但不是全部)类型的操作,一旦最初构建操作并使用子操作填充操作,它将通过该数组的适当元素引用的检查函数进行过滤。

在源代码的哪里可以看到哪些类型的操作码将被过滤?

4

1 回答 1

4

您可以检查所有类型的操作。就像上面所说的,它是一个由操作码索引的数组。

如果您想知道哪些操作具有检查器,这可能会根据您加载的模块而有所不同。例如,自动生存OP_PADANY为、 OP_PADSVOP_AELEMOP_HELEMOP_RV2SVOP_RV2AVOP_RV2HVOP_ASLICEOP_HSLICEOP_EXISTSOP_DELETEOP_KEYS和 增加了检查器 OP_VALUES。(其中一些可能已经有检查器,在这种情况下,autovivifaction 的新检查器将调用旧检查器。)

PL_check通过查看in的定义opcode.h(由 生成) ,您可以找到哪些操作具有内置检查器opcode.pl

于 2017-02-27T00:33:42.360 回答