【问题标题】:How can I embed a Perl interpreter in my C# program using Mono on Linux?如何在 Linux 上使用 Mono 将 Perl 解释器嵌入到我的 C# 程序中?
【发布时间】:2010-11-10 08:00:15
【问题描述】:

有谁知道是否可以在 C# 中从 Mono 调用 Perl 子程序?这是在 Linux 机器上。

也许是DllImport?如果可能,我们也希望避免每次都加载 perl。

【问题讨论】:

  • 我还想避免仅仅通过 Process.Start 运行 perl。我认为很难调用以这种方式返回数组或哈希的 subs。我希望调用的 sub 特定于现有系统,并以多维数组/哈希返回 SQL 结果。

标签: c# perl mono embed


【解决方案1】:

Interop 在 Linux 下与 Mono 配合使用可以很好地调用 C 代码。 因此,我认为您查看perlembed。 您需要创建一个共享的 C 库,而不是 C 程序。 对于互操作,有几个很好的指南——一个潜在的陷阱是数据类型的大小,因为你真的依赖于平台/CPU。 如果您需要更详细的信息,请告诉我。

【讨论】:

  • 这肯定会让我滚来滚去。如果有任何陷阱,我可能会回帖。
【解决方案2】:

This thread on PerlMonks 可能会有所帮助。

【讨论】:

  • 这篇文章表明他们没有在 Linux 上尝试过,有人尝试过吗?我想知道他们在示例中使用的 Microsoft COM 对象是否也适用于 Linux。我们会尝试一下,只是想知道是否有人已经这样做了。
  • @Jonathan COM 对象在 Linux 上甚至不存在。您在问题中没有提到 Linux。也许您应该更新以澄清。
  • 我原以为提到 Mono 会让人认为我指的是 Linux。
  • Mono 在所有三个平台上都可用。我主要在 Windows 上工作,我使用 Mono 来学习 C#。您认为提及 Mono 应暗示您在 Linux 上的期望类似于提及 gcc 应暗示 Linux 的假设。两者都没有保证。当然,这没什么大不了的,但我认为您对此有点过于执着了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-08
  • 2019-05-26
  • 2011-01-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多