我目前有一个用C编写的程序,我有兴趣在其中集成一个相当长的Perl脚本,其他人编写的这个脚本可以完成类似的功能,但以不同的方式完成。我对手工将整个Perl脚本转换成C不感兴趣。
在我看来,有几种不同的选择:
system("perl script.pl")和管道输入和输出,但是我觉得这个解决方案不是可移植的,而且感觉不太优雅。perlcc)在编译时将Perl源代码编译成C源代码,然后将其包含到我的程序的其余部分中。虽然乍一看,我认为这是最好的选择,但在Perl社区(或者至少google向我展示的部分),进行这种翻译并不是一个非常好的主意(这可能只是为了速度考虑,这对我来说根本不是问题)。这也(可能?)请允许我从C代码中调用Perl子程序,这将是一个巨大的好处。因此,我的问题是:这些选项中哪一种(或者没有上述选项)是最优雅和便携的?我知道,从C程序内部调用这个Perl程序已经是一种杂乱无章的攻击,但最不麻烦的解决方案可能是最好的。
谢谢!
发布于 2011-03-08 03:16:14
解决办法:
上述每种方法都有其优缺点。这取决于你关心的是什么:
最后,如果是我,我会选择嵌入或翻译,这取决于它是否会再次改变。
现在..。我为地质找矿编写了一个完整的系统,实际上我想将它转换为Qt,因为我认为它会更易于移植。我的正确选择是什么?翻译。但这需要很长时间,所以我还没有这么做。
发布于 2011-03-08 11:09:18
如果perl脚本不是很长,您可能应该用C重写它,而忘记perl。
否则,我会使用系统呼叫。如果要考虑可移植性,可以使用perlcc编译perl脚本,以便获得一个可完全可移植的exe文件,从而避免在您希望运行此程序的每台计算机上安装perl。
https://stackoverflow.com/questions/5226819
复制相似问题