阅读perlxs文档后,我来到了
OUTPUT
关键字的部分:
我不确定为什么需要xsubpp为XSUB中
OUTPUT
部分的所有参数自动发出SvSETMAGIC()
,除了RETVAL。这通常是期望的行为,因为它负责在输出参数上正确调用“set”魔法(对于必须创建的哈希或数组元素参数,如果它们不存在,则需要这些魔法)。
set
魔法(以及为什么不需要RETVAL
),以及为什么哈希和数组元素参数需要set
魔法?
"needed for hash or array element parameters that must be created if they didn't exist"
”呢?这是指什么?这是否意味着标量不适用于set
魔法或其他内容? - Håkon Hæglandmy @array; modifies_arguments($array[42])
只有在实际修改时才会创建数组元素,比如自动创建。如果数组是神奇的,则这将涉及对数组本身设置魔法。然而,这仍然适用于标量,就像上面的$ref
示例一样。 - nothingmuch