【发布时间】:2010-11-10 08:00:15
【问题描述】:
有谁知道是否可以在 C# 中从 Mono 调用 Perl 子程序?这是在 Linux 机器上。
也许是DllImport?如果可能,我们也希望避免每次都加载 perl。
【问题讨论】:
-
我还想避免仅仅通过 Process.Start 运行 perl。我认为很难调用以这种方式返回数组或哈希的 subs。我希望调用的 sub 特定于现有系统,并以多维数组/哈希返回 SQL 结果。
有谁知道是否可以在 C# 中从 Mono 调用 Perl 子程序?这是在 Linux 机器上。
也许是DllImport?如果可能,我们也希望避免每次都加载 perl。
【问题讨论】:
Interop 在 Linux 下与 Mono 配合使用可以很好地调用 C 代码。 因此,我认为您查看perlembed。 您需要创建一个共享的 C 库,而不是 C 程序。 对于互操作,有几个很好的指南——一个潜在的陷阱是数据类型的大小,因为你真的依赖于平台/CPU。 如果您需要更详细的信息,请告诉我。
【讨论】:
This thread on PerlMonks 可能会有所帮助。
【讨论】:
gcc 应暗示 Linux 的假设。两者都没有保证。当然,这没什么大不了的,但我认为您对此有点过于执着了。