我需要为Perl编写一个XS模块。据我所知,h2xs在今天已经被基本弃用了,那么现在启动XS模块的首选方法是什么?我查看了Module::Starter,但它只处理纯Perl模块。
不,h2xs并未被弃用。如果您创建许多纯Perl模块,那么Module::Starter肯定更方便,但没有理由避免使用h2xs。建议在使用之前完整阅读其文档,这样就可以知道您可能想要做什么或不想做什么。
就我个人而言,我只使用Module::Starter并自己添加.xs文件。这取决于您的目标:如果您正在进行一对一映射到C API,则h2xs可以为您执行许多样板文件操作,但是如果您正在创建全新接口或仅与Perl本身(而不是某些外部库)进行操作,那么在我看来它并没有什么用处,反而会带来麻烦。
个人而言,每当我开始制作新模块时,我只是通过复制和编辑与之相似的另一个模块的文件来完成,然后根据需要进行编辑。当然,这种方法并不一定要使用我的模块。你可以从 CPAN 上获取大量代码的副本,并从中获得灵感...
你也应该考虑使用内联::C。