PERL-Script einbinden



  • Hallo zusammen,

    um meinem Programm ein bisschen mehr Funktionalität zu geben, habe ich jetzt ein PERL-Script zur Berechnung einiger Sachen bekommmen. Für mich ergibt sich aber jetzt die Frage, wie ich dieses Script in mein Programm hinein bekomme.

    Besteht also die Möglichkeit, in Analogie zur Einbindung von VB-Code, dieses Script in irgendeiner Weise zum Laufen zu bringen? Oder muss ich es komplett in C++ .net neu schreiben?

    Besten Dank für eure Antworten
    physici



  • Du kannst ja immer noch "perl.exe" mit Deinem Skript aufrufen!

    Oder auch:
    http://www.activestate.com/Products/Perl_Dev_Kit/

    Oder es eben umschreiben in C# / C++/CLI (was auch nicht so schwierig sein sollte; da es ja hier auch die RegEx Klassen gibt)



  • Jochen Kalmbach schrieb:

    Du kannst ja immer noch "perl.exe" mit Deinem Skript aufrufen!

    Oder auch:
    http://www.activestate.com/Products/Perl_Dev_Kit/

    Oder es eben umschreiben in C# / C++/CLI (was auch nicht so schwierig sein sollte; da es ja hier auch die RegEx Klassen gibt)

    RegEx-Klassen. Von denen hab ich noch nie was gehört. In welchem Zusammenhang steht das mit PERL? PERL kenn ich ja nun überhaupt nicht, das Skript sieht allerdings irgendwie C ähnlich aus.
    Das mit dem "perl.exe" hätt mir natürlich selbst einfallen sollen. 🤡



  • RegEx: Perl ist eigentlich *die* Sprache für "Reguläre Ausdrücke"!



  • Statt den Perlinterpreter extern aufzurufen, lässt sich der Interpreter
    auch direkt ins eigene Programm mit einbinden.
    Die Perl API scheint recht ekelhaft zu sein, aber zum Glück sind Wrapper verfügbar:
    http://www.codeproject.com/cpp/cperlwrap.asp

    Damit lassen sich Variablen im Perl Script von C/C++ aus setzen bzw. auslesen.
    Dazwischen lassen sich die Daten mittels Perlcode manipulieren.

    Obiger Link verwendet zwar Container und Strings aus den MFC aber mit mäßigem
    Aufwand läßt sich das umschreiben so dass es z. B. mit std::string, std::vector und
    std::map läuft (hab ich aber leider nicht mehr drum kann ich's dir nicht geben.)

    Ähnliches sollte für die entsprechenden Klassen (String, List?, SortedList?)
    aus dem .NET Framework gelten.

    mfg
    Martin


Anmelden zum Antworten