IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Modules Perl Discussion :

Perl Embed et Pure Perl


Sujet :

Modules Perl

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 3
    Par défaut Perl Embed et Pure Perl
    Bonjour,

    Je cherche à inclure un programme perl dans un programme C.

    J'ai réussi à faire tourner les exemples fournis avec ExtUtils::Embed.

    J'ai réussi à include DBI et DBD::Oracle dans mon programme et ça fonctionne.

    Par contre impossible d'inclure Spreadsheet::WriteExcel.

    Le problème c'est que pour DBI et DBD::Oracle, j'ai fait le xsinit et j'ai inclus le fichier généré et les .o et ça roule.

    Pour Spreadsheet::WriteExcel, c'est en pur perl, il n'y a pas de .o d'où mon problème. Donc je finis avec une erreur sur boot_Spreadsheet__WriteExcel qui n'existe nulle part.

    Dans le projet, on n'a pas le droit de rajouter des modules perl sur le serveur et il faut avoir un minimum de fichiers au final.

    Merci pour une petite idée,

    A+
    Bruno

  2. #2
    Expert confirmé
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Par défaut
    Je ne suis pas sûr de comprendre ton problème... A priori tu n'as pas besoin de rajouter un quelconque .o pour pouvoir utiliser un module Pur Perl comme Spreadsheet::WriteExcel. La méthode xsinit ne s'applique dans le cas de modules possédant une partie XS.


    Dans le projet, on n'a pas le droit de rajouter des modules perl sur le serveur et il faut avoir un minimum de fichiers au final.
    Là je ne vois pas le rapport non plus... Est-ce que tu crois que tu peux utiliser les modules comme DBI ou DBD::Oracle sans les installer sur le serveur simplement parce que tu as embarqué ton Perl ? Ce n'est pas le cas, il faut tout de même avoir ces modules installés. Par contre ce qu'il est possible de faire, c'est de ne les installer que localement, ou même de les inclure dans l'exécutable, comme PAR::Packer le fait.

    --
    Jedaï

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 3
    Par défaut
    Merci Jedai pour la réponse.

    Citation Envoyé par Jedai
    Je ne suis pas sûr de comprendre ton problème... A priori tu n'as pas besoin de rajouter un quelconque .o pour pouvoir utiliser un module Pur Perl comme Spreadsheet::WriteExcel. La méthode xsinit ne s'applique dans le cas de modules possédant une partie XS.
    Ok dac. Est ce que ça veut dire que si j'embed un interpreteur perl non dynamique, il n'y a pas moyen de lui rajouter une ou deux fonctions ou modules ?


    Citation Envoyé par Jedai
    Là je ne vois pas le rapport non plus... Est-ce que tu crois que tu peux utiliser les modules comme DBI ou DBD::Oracle sans les installer sur le serveur simplement parce que tu as embarqué ton Perl ? Ce n'est pas le cas, il faut tout de même avoir ces modules installés.
    Pour l'instant le binaire généré fait une connexion oracle correcte et une requete qui marche. C'est possible qu'il ait trouvé un DBI.pm dans l'arborescence du serveur, je vais vérifier. Ca me semblait bizzare également

    Citation Envoyé par Jedai
    Par contre ce qu'il est possible de faire, c'est de ne les installer que localement, ou même de les inclure dans l'exécutable, comme PAR:: Packer le fait.
    Je m'excuse si je m'exprime mal. Au final je dois faire un .so pour les linux et une .dll pour les windows. Un programme externe sur lequel je n'ai pas la main appelle cette lib fait la connexion Oracle et génère le fichier excel. Je n'ai pas l'impression que PAR:: Packer puisse faire des .so, si j'ai bien compris, PAR:: Packer, il prend une partie static.o qu'il met en en-tête d'une archive Zip avec le code perl.

    Pas mieux non plus du côté de PerlDevKit de ActiveState. Ils ont PerlCtrl sous windows mais qui fait un activeX d'après la doc, je ne sais pas si ça conviendra, et il ne semble pas avoir de PerlCtrl pour linux.

    A+
    Bruno

Discussions similaires

  1. perl embed; lire les tableaux
    Par blaise4714 dans le forum Langage
    Réponses: 1
    Dernier message: 14/05/2007, 20h36
  2. lancer un script perl depuis un script perl
    Par minusette dans le forum Langage
    Réponses: 7
    Dernier message: 23/08/2006, 12h03
  3. Executer un script non Perl avec un script Perl.
    Par jabrane1983 dans le forum Langage
    Réponses: 6
    Dernier message: 03/08/2006, 14h43
  4. [PERL et JAVA] Appeler PERL depuis JAVA
    Par krusty dans le forum Modules
    Réponses: 4
    Dernier message: 05/04/2006, 21h49
  5. Comment lancer un script perl dans un script perl
    Par kiza dans le forum Langage
    Réponses: 3
    Dernier message: 21/10/2005, 21h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo