我目前有一个用C语言编写的程序,我有兴趣将一个相当冗长的perl脚本集成到其中,其他人编写的脚本完成了类似的功能,但是以不同的方式完成。我不想将整个perl脚本翻译成C语言。
我看到它的方式有几个不同的选择:
system("perl script.pl")
并管道输入和输出,但我觉得这个解决方案不可移植,感觉不太优雅。所以我的问题是:这些选项中的哪一个(或者上面没有一个)是最优雅和最便携的?我知道从C程序中调用这个perl程序已经是一个混乱的黑客入手,但最不凌乱的解决方案可能是最好的。
谢谢!
答案 0 :(得分:3)
解决方案:
上述每种方法都有优点和缺点。这取决于你关注的是什么:
最后,如果是我,我会选择嵌入或翻译,具体取决于它是否会再次更改。
现在......我为geocaching编写了一个完整的系统,我实际上想要翻译成Qt,因为我认为它会更便携。什么是我正确的选择?翻译。但这需要花费很多时间,因此我还没有完成它。
答案 1 :(得分:0)
如果perl脚本不是很长,可能你应该用C重写它并忘记perl。
否则,我会使用系统调用。如果需要考虑可移植性,可以使用perlcc编译perl脚本,以获得一个完全可移植的exe文件,并且可以避免在每台要运行该程序的机器上安装perl。