mittels C eine Perl-lib aufrufen



  • Hallo,

    ich habe eine eigene lib-Perl-Datei die ich von einigen Perlprogrammen mit require einbinde und dann die Funktionen aufrufe. (erfolgreich ;))

    Ich möchte nun eine Funktion in einem C-Programm aufrufen.
    so in der Art "system(perl file.funktion(parameter))

    geht so etwas überhaupt, wenn ja dann wie ???

    Danke
    worst_case





  • Hallo,

    danke für die schnelle Antwort.
    Ich habe nun eine andere Möglichkeit gefunden die auch auf der Konsole läuft
    Ich denke das ist die einfachere (man sieht nachfolgend :D) Methode für mich.

    log = Name der lib
    writelog = Funktion in der lib

    perl -Mlog -e '$log{writelog("Hallo das ist ein Text\n")}'
    

    das funktionier auch soweit.
    Wie bringe ich es aber dazu mit dem Systembefehl zu laufen.

    system("perl -Mlog -e '$log{writelog("Hallo das ist ein Text\n")}'");
    

    funktioniert nicht.
    Ich habe hier die Schwierigkeiten die einzelnen String/Befehl sauber auseinander zu halten.

    Danke
    worst_case



  • Hallo,

    ich habe es jetzt mit einem String hinbekommen.
    War ja klar 😃

    system("perl -Mlog -e '$log{writelog(Hallo das ist ein Text\n)}'");
    

    Jedoch wie sieht es mit einer Variable aus

    void message (char* txt)
    {
    system("perl -Mlog -e '$log{writelog(txt)}'"); 
    return;
    }
    

    Wie wird diese Zeile geschrieben.

    Danke
    worst_case



  • Wenn du eine Variable übergeben willst, musst du vorher den string zusammen setzen (siehe zB man: sprintf) und dann system übergeben. Aber system bringt so seine Nachteile mit sich (siehe C++ FAQ)


Anmelden zum Antworten