我在Pure Perl中有一个复杂的编码功能,我正在转换为XS,希望能够提升性能。
我转换为XS的函数需要以递归方式调用自身。我可以看到如何使用call_sv [感谢“man perlcall”]来调用Pure Perl函数。
但是我怎么称自己(或任何其他XS功能)来自XS?
(P.S。效率非常理想......)
有人可以给我一个提示吗?还是一个例子? P-P-P-请!
更新:第一个答案绝对正确。调用递归纯C函数可以正常工作。
答案 0 :(得分:9)
别。 XS是一种为C函数提供Perl接口的机制。不要从C函数调用XS函数(为此使用call_sv
等);从XS函数调用C函数。
编写递归C函数并将其保留在XS代码之外(MODULE =
行之前或单独的.c
)。从瘦XS包装器中调用它。