Как я могу встроить Perl-интерпретатор в мою программу на C #, используя Mono в Linux?

2

Кто-нибудь знает, можно ли вызвать Perl sub из Mono в С#? Это находится на машине Linux.

Может быть DllImport? Мы также хотим избежать загрузки perl каждый раз, если это возможно.

  • 0
    Я также хочу избежать простого запуска perl через Process.Start. Я думаю, что было бы трудно вызывать подпрограммы, которые возвращают массивы или хэши таким образом. Подпрограмма, которую я хочу вызвать, специфична для существующей системы и возвращает результаты SQL в многомерных массивах / хэшах.
Теги:
embed
mono

2 ответа

3
Лучший ответ

Interop отлично работает с Mono под Linux, чтобы вызвать C-Code. Таким образом, я бы подумал, что вы смотрите на perlembed. Вместо C-программы вам нужно создать общую C-библиотеку. Для Interop существует несколько хороших руководств - потенциальная ошибка - это размеры типов данных, потому что вы действительно зависите от платформы или процессора. Дайте мне знать, если вам нужна более подробная информация.

  • 0
    Это определенно заставит меня двигаться. Я, вероятно, отправлю обратно, если будут какие-либо подводные камни.
3

Этот поток на PerlMonks может помочь.

  • 0
    Этот пост предполагает, что они не пробовали это в Linux, кто-нибудь пробовал это? Мне интересно, работает ли объект COM COM, который они используют в этом примере, даже на Linux. Мы попробуем, просто интересно, если кто-нибудь уже.
  • 1
    @ Джонатан COM-объект даже не существует в Linux. Вы не упомянули Linux в своем вопросе. Может быть, вам следует обновить, чтобы уточнить.
Показать ещё 4 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню