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

Langage Perl Discussion :

Appel de fonction .pl


Sujet :

Langage Perl

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    56
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 56
    Points : 52
    Points
    52
    Par défaut Appel de fonction .pl
    Bonjour, supposons que j'ai une fonction createTab() dans un fichier tableau.pl (Ce qui n'est pas très convenable c'est vrai).
    Est il possible d'appeler cette fonction createTab() dans un fichier catch.pm car je ne peux pas utiliser de package tableau vu que c'est un module .pl.

    Merci

  2. #2
    Membre émérite
    Avatar de Jasmine80
    Femme Profil pro
    Bioinformaticienne
    Inscrit en
    Octobre 2006
    Messages
    3 157
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 44
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Bioinformaticienne
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2006
    Messages : 3 157
    Points : 2 673
    Points
    2 673
    Par défaut
    Citation Envoyé par cricri77200 Voir le message
    Bonjour, supposons que j'ai une fonction createTab() dans un fichier tableau.pl (Ce qui n'est pas très convenable c'est vrai).
    Pourquoi ne serait-ce pas convenable? Tout dépend si tu as souvent besoin de cette fonction ou non dans d'autres scripts.

    Citation Envoyé par cricri77200 Voir le message
    Est il possible d'appeler cette fonction createTab() dans un fichier catch.pm car je ne peux pas utiliser de package tableau vu que c'est un module .pl.

    Merci
    Le nom de ta fonction peut être différent du nom du package qui la contient.
    Ce message devrait t'aider.
    -- Jasmine --

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    56
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 56
    Points : 52
    Points
    52
    Par défaut
    Voici un exemple de code :

    pour le fichier tableau.pl :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    #!/usr/bin/perl
     
    sub createTab{
    .....
    .....
     
    return 1;
    }
    pour le fichier catch.pm :
    Je ne peux pas faire : use tableau; car je ne peux pas créer de package tableau dans un .pl .
    Donc comment faudrait t'il faire pour faire quelque chose qui ferait ca en gros:
    tableau :: createtab();

    Merci

  4. #4
    Membre émérite
    Avatar de Jasmine80
    Femme Profil pro
    Bioinformaticienne
    Inscrit en
    Octobre 2006
    Messages
    3 157
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 44
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Bioinformaticienne
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2006
    Messages : 3 157
    Points : 2 673
    Points
    2 673
    Par défaut
    A ta place, j'essaierai quelque chose comme ça:

    Catch.pm
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    package Catch;
     
    use base 'Exporter'; 
    our @EXPORT = qw(createTab);
     
    sub createTab() {
      print "création du tableau\n";
    }
     
    1;

    tableau.pl
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    #!/usr/bin/perl
     
     
    use strict; 
    use warnings;
     
    use Catch;
     
    createTab();
    -- Jasmine --

  5. #5
    Membre émérite
    Avatar de Jasmine80
    Femme Profil pro
    Bioinformaticienne
    Inscrit en
    Octobre 2006
    Messages
    3 157
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 44
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Bioinformaticienne
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2006
    Messages : 3 157
    Points : 2 673
    Points
    2 673
    Par défaut
    Pour simplement créer une fonction dans le programme principal tableau.pl utilise
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    #!/usr/bin/perl
     
     
    use strict; 
    use warnings; 
     
     
     
     
    my  $ref_tableau = createTab(différents arguments à passer);
     
     
     
     
     
     
     
     
     
    # à la fin du script
     
    sub createTab{
     
    	my @argurments = @_;
    	.....
    	.....
     
    	return \$ref_tableau;
    }
    -- Jasmine --

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    56
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 56
    Points : 52
    Points
    52
    Par défaut
    Oui ca cela la bonne solution sauf que le programme que l'on ma donné ne peut être modifié. La fonction createTab est dans le .pl =/

    Y a til une solution ?

  7. #7
    Membre émérite
    Avatar de Jasmine80
    Femme Profil pro
    Bioinformaticienne
    Inscrit en
    Octobre 2006
    Messages
    3 157
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 44
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Bioinformaticienne
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2006
    Messages : 3 157
    Points : 2 673
    Points
    2 673
    Par défaut
    Citation Envoyé par cricri77200 Voir le message
    Oui ca cela la bonne solution sauf que le programme que l'on ma donné ne peut être modifié. La fonction createTab est dans le .pl =/

    Y a til une solution ?
    cf mon 3ième message
    -- Jasmine --

  8. #8
    Expert confirmé

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    3 577
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2009
    Messages : 3 577
    Points : 5 753
    Points
    5 753
    Par défaut
    Il est tout à fait possible de créer un package dans un .pl ,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    package tableau;
     
    sub CreateTab {
    ...
    }
    ...
     
    1;
     
    package main;
     
    ...
    Cependant, tu ne pourras sans doute pas utiliser use, mais plus require, et tu ne pourras pas empêcher d'exécuter le package main de ton .pl, ce qui n'est sans doute pas ce que tu souhaites.

    Je te conseille donc d'extraire du .pl la classe ou le module tableau, de le mettre dans un module tableau.pm, et d'y faire appel par use dans ton .pl ET dans ton nouveau module catch.pm.

    Edit : oups... j'ai pas vu les réponses intermédiaires... si tu ne peux modifier le .pl, je dois dire que tu ne pas faire grand chose de "propre"
    Plus j'apprends, et plus je mesure mon ignorance (philou67430)
    Toute technologie suffisamment avancée est indiscernable d'un script Perl (Llama book)
    Partagez vos problèmes pour que l'on partage ensemble nos solutions : je ne réponds pas aux questions techniques par message privé
    Si c'est utile, say

Discussions similaires

  1. Appeler une fonction avec "action" ds un
    Par drinkmilk dans le forum ASP
    Réponses: 4
    Dernier message: 20/04/2004, 14h54
  2. Réponses: 4
    Dernier message: 19/04/2004, 13h41
  3. [JSP] Appeler une fonction
    Par Patrick95 dans le forum Servlets/JSP
    Réponses: 10
    Dernier message: 23/12/2003, 13h44
  4. Appel à des fonctions incluses dans des DLL
    Par Greybird dans le forum Langage
    Réponses: 3
    Dernier message: 26/05/2003, 13h33
  5. Appeler une fonction avec/sans parenthèses
    Par haypo dans le forum Algorithmes et structures de données
    Réponses: 8
    Dernier message: 29/12/2002, 18h48

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