如何使用Perl中的C类?

我有一套用C写的课.从Perl脚本中调用它们的最佳方法是什么?谢谢.

解决方法

我不是特别喜欢SWIG,而是喜欢自己编写界面代码. Perl附带一种称为“XS”的伪语言,用于连接到C或C.不幸的是,为了使用它,您至少需要知道C,Perl,然后再学习一下解释器API.如果你已经熟悉Perl和C,这不是一个很大的一步.看看XS上的以下核心文档:

> perlxstut(XS教程)
> perlxs(XS参考)
> perlapi(口译API)

此外,互联网上有很多教程和操作方法.

现在,使用XS连接到C需要一些额外的步骤.一开始可能有点沮丧,但一旦得到它就整齐地落到位.在这方面,核心文件最多是稀少的.但一切都不会丢失. Perl的wxWidgets绑定的创建者Mattia Barbon写了一个很好的工具“XS”,使得这几乎变得简单(或像XS一样简单).它包含在Wx中,但是我们正在将其分解成自己的分发.这是正在进行中.你可以在github上找到Mattia’s XS++ codemodified version of mine.

除了将单独的XS发布给CPAN,我建议学习从其他资源中为C写入XS:

>很久以前,John Keizer写了一个很好的tutorial on XS and C++.它还包括进一步的指向有用的工具和文档的指针.
>我从该教程中学到了XS&C,并在CPAN上发现了一些例子.我不记得我当时看了什么但现在我可以指出自己的工作是(好或坏,我不知道)例:Math::SymbolicX::FastEvaluator.
>类似地,计划的XS分发包含使用XS来连接C和Perl的complete (albeit pointless) example.由于XS被翻译成纯XS,您可以使用它来生成示例.

PS:还有Inline :: CPP模块.如果这样做,这可能是最简单的解决方案.我怀疑它可以处理模板,但是.

相关文章

1. 如何去重 #!/usr/bin/perl use strict; my %hash; while(...
最近写了一个perl脚本,实现的功能是将表格中其中两列的数据...
表的数据字典格式如下:如果手动写MySQL建表语句,确认麻烦,...
巡检类工作经常会出具日报,最近在原有日报的基础上又新增了...
在实际生产环境中,常常需要从后台日志中截取报文,报文的形...
最近写的一个perl程序,通过关键词匹配统计其出现的频率,让...