2009-07-13 4 views
2

Est-ce que quelqu'un sait s'il est possible d'appeler un sub Perl de Mono en C#? C'est sur une machine Linux.Comment intégrer un interpréteur Perl dans mon programme C# en utilisant Mono sous Linux?

Peut-être que DllImport? Nous voulons éviter de charger Perl à chaque fois si possible, aussi bien.

+0

Je veux aussi éviter d'exécuter simplement perl via Process.Start. Je pense qu'il serait difficile d'appeler des sous-groupes qui retournent des tableaux ou des hachages de cette manière. Le sous-réseau que je souhaite appeler est spécifique à un système existant et renvoie des résultats SQL dans des tableaux/hachages multidimensionnels. – jonathanpeppers

Répondre

3

Interop fonctionne correctement avec Mono sous Linux pour appeler C-Code. Ainsi, je considérerais que vous regardez perlembed. Au lieu d'un programme C, vous devez créer une bibliothèque C partagée. Pour Interop, il existe plusieurs bons guides - les tailles de types de données sont potentiellement un piège, car vous êtes vraiment dépendant de la plaform/du processeur. Faites-moi savoir si vous avez besoin d'informations plus détaillées.

+0

Cela va certainement me faire rouler. Je vais probablement poster si des pièges sont. – jonathanpeppers

3

This thread on PerlMonks pourrait aider.

+0

Ce message suggère qu'ils ne l'ont pas essayé sur Linux, est-ce que quelqu'un l'a essayé? Je me demande si l'objet Microsoft COM qu'ils utilisent dans l'exemple fonctionne même sur Linux. Nous allons essayer, je me demandais si quelqu'un l'a déjà fait. – jonathanpeppers

+1

@Jonathan l'objet COM n'existe même pas sous Linux. Vous n'avez pas mentionné Linux dans votre question. Peut-être que vous devriez mettre à jour pour clarifier. –

+0

Je m'attendais à ce que la mention de Mono fasse supposer que je me réfère à Linux. – jonathanpeppers

Questions connexes