注意:我见过Writing a program in 2 languages?,但发现没有好的答案IMO。
我可以使用2种,3种甚至4种语言制作单个节目吗?我需要做些什么(可能在Perl和C中)?我使用的是Windows 7 64位。
答案 0 :(得分:4)
正如人们已经提到过的那样,只要有绑定就可以。 Inline::C
提供了从Perl轻松访问C的功能,但是一旦你开始掌握它,我发现XS几乎一样容易。
目前:
#!/usr/bin/env perl
use strict;
use warnings;
use Inline C => <<'END_C';
char* name () {
return "Joel";
}
END_C
print name() . "\n";
所以这就引出了一个问题,你想做什么?如果您需要更深入的内容,可以查看我的(正在进行的工作)Math::GSLx::ODEIV2
的来源。
答案 1 :(得分:3)
答案 2 :(得分:2)
一种方法是使用一些Perl模块 Inline::*命名空间。例如,Inline::C允许您直接在Perl源文件中编写C子例程。该模块透明地处理将C例程编译为共享库并动态加载库。有各种语言的“内联”模块 - 具有不同的完整性和支持状态。
答案 3 :(得分:1)
当然,您可以根据需要使用多种语言。您只需要适当的工具来绑定这些单元。每种语言都有自己的内置支持,可以与其他语言进行互操作,通常也可以使用这些语言。您需要的确切工具取决于您使用的语言,但我所知道的每种语言都支持至少绑定到C函数。
答案 4 :(得分:1)
查看 21.3章节。在Programming Perl中扩展Perl(使用Perl中的C)。
答案 5 :(得分:0)
如果您正在寻找C的Perl绑定,请查看swig。