现在很多开源的项目都用Perl来实现,例如spamassassin,一个垃圾邮件过滤器,源代码里面即有Perl程序,又有c语言程序。本人以前没有接触过perl程序,所以有几个问题想请教各位大侠
1、spamassassin的源代码里有.pl及.pm两者后缀结尾的perl文件,这两者有什么区别?perl也象c语言一样需要头文件么,如果有的话一般是什么后缀结尾的呢
2、c语言和perl一般是如何结合的,是以c语言的main函数做入口,然后调用perl语言库呢,还是以perl语言为入口,调用c语言库?
3、关于spamassassin的源代码学习有那位前辈如果研究过请赐教一二,不甚感激
pm 是perl的模块文件. 一般是定义一个package供其他perl 程序调用. pl就是一般的perl源文件.
c和perl的交互,既可以c调用perl, (看perlembed). 也可以perl调用C.可以用swig或者手写perl的扩展模块,然后编译。
也可以用Inline::C模块
研究 perlxs 和 perlapi 就差不多了.
用h2xs 生成一个模块慢慢试吧.
http://www.edacn.net/bbs/get.php?id=23516
如果你有现成的C++代码,swig可以自动生成Perl的模块。
1、spamassassin的源代码里有.pl及.pm两者后缀结尾的perl文件,这两者有什么区别?perl也象c语言一样需要头文件么,如果有的话一般是什么后缀结尾的呢
2、c语言和perl一般是如何结合的,是以c语言的main函数做入口,然后调用perl语言库呢,还是以perl语言为入口,调用c语言库?
3、关于spamassassin的源代码学习有那位前辈如果研究过请赐教一二,不甚感激
pm 是perl的模块文件. 一般是定义一个package供其他perl 程序调用. pl就是一般的perl源文件.
c和perl的交互,既可以c调用perl, (看perlembed). 也可以perl调用C.可以用swig或者手写perl的扩展模块,然后编译。
也可以用Inline::C模块
研究 perlxs 和 perlapi 就差不多了.
用h2xs 生成一个模块慢慢试吧.
http://www.edacn.net/bbs/get.php?id=23516
如果你有现成的C++代码,swig可以自动生成Perl的模块。