Rechercher : dans
Par :

Perl : Faire un package

Dernière réponse le 8 aoû 2008 à 10:15:33 Ptesoleil, le 7 aoû 2008 à 17:16:43 
 Signaler ce message aux modérateurs

Bonjour,

Je voudrais faire un package Perl mais je sais pas comment le faire . J'ai cherché de la documentation mais je n'ai trouvé de réponses claires à mes questions.
Voilà je voudrais mettre plusieurs fonctions "sub" dans ce package et les appeler dans mon main par la suite.
Mais voilà je sais pas si je dois déclarer les variables de mes fonctions par "our" et comment je rapelle ces variables de fonctions dans le main.

Voilà ce que j'ai fait pour le moment :
#!/usr/bin/perl
package Condition;
use strict;
use warnings;
sub condition_2specie
{
    my ($line,$spec,$cond) = @_;
    if ($line =~ /^\s\#\d+\,\d+\#\s\d.*\s\{\w.*\}\s\s\(\#(\d+)\#\s(\w.+)\<\d.+\>\;\s\#(\d+)\#\s(\w.+\<\d.+\>\;\s\#(\d+)\#\s(\w.+)\<\d.+\>\)/)
    {
       if ($1 eq $spec)
       {
        	$cond=$2;
        	print FIL " - $cond";
        }
        if ($3 eq $spec)
        {
                $cond=$4;
                print FIL " - $cond";
        }
        if ($5 eq $spec)
        {
               $cond=$6;
                print FIL " - $cond";
        }
    }
    else 
    {
           $cond="No condition";
           print FIL " - $cond";
     }
}
1;

et dans le main :
use Condition;
..
Condition::condition_2specie ($linekmtn,$specie1,$condition); #Rappel de la fonction du package 

Quelqu'un pourrait-il m'aider à éclaircir le sujet?
Configuration: Windows XP
Internet Explorer 6.0

Meilleures réponses pour « Perl : Faire un package » dans :
Java - Les packages Voir Introduction aux packages La programmation Java consiste à créer des classes. Or, étant donné qu'un programme est généralement développé par une équipe de programmeurs, c'est-à-dire plusieurs personnes, le fait de concaténer (mettre bout à bout)...
[Matériel] Packard Bell: Restauration, master VoirPackard Bell : Restauration, Master Récapitulatif des postes présents sur les différents forums Sommaire Avant propos 1 - POURQUOI EST-IL SI IMPORTANT DE SAUVEGARDER LA PARTITION CACHÉE ? 2 - COMMENT RE-RETATOUER ? 2.1 - Si vous avez...
Impossibilité d'installer le Service Pack 2 de Vista (Erreur) VoirVous essayez d'installer le Service Pack 2 (SP2) de Vista et vous rencontrez une erreur (0x80070057), voici la solution : Désinstallez les 3 mises à jour de sécurité suivantes : KB970653 KB972036 KB973874 Puis installez le Service Pack 2....
Télécharger Vista Codec Package VoirVista Codec Package est un ensemble de codec audio et vidéo. Il prend en charge les formats de fichier suivant : xvid, Windows Media Video 9, ffdshow, ogg, ac-3 acm, mpg, avi et bien plus encore. Lors de l’installation, vous pouvez choisir les...
Perl - Les fichiers VoirLa notion de filehandle On appelle filehandle (traduisez descripteur de fichier), dans un programme Perl, le nom permettant de manipuler une connexion d'entrée-sortie (les entrées-sorties standards vues précédemment sont connues par les filehandles...
Les variables avec Perl VoirConcept de variable avec Perl Une variable est un objet repéré par son nom, pouvant contenir des données, qui pourront être modifiées lors de l'exécution du programme. Les variables en langage Perl peuvent être de trois...
Perl - Caractéristiques du langage VoirFichier source, et interprétation Le fichier source d'un programme écrit en Perl est un simple fichier texte dont l'extension est par convention .pl. Ce fichier source doit être un fichier texte non formatté, c'est-à-dire un fichier texte dans sa...

1

lami20j, le 7 aoû 2008 à 20:09:02
  • +1

Salut,

voici un exemple

lami20j@debian:~/trash$ cat MonPackage.pm
package MonPackage;
use strict;
require Exporter;

our @ISA = qw/Exporter/;

our @EXPORT = qw/min2maj maj2min char2ascii ascii2char/;

sub min2maj{
  return uc(shift);
}

sub maj2min{
  return lc(shift);
}

sub char2ascii{
  return unpack("C*",shift);
}

sub ascii2char{
  return pack("C*",@_);
}

1;
lami20j@debian:~/trash$ cat ccm.pl
#!/usr/bin/perl
#
use warnings;use strict;
use lib "/home/lami20j/trash";

use MonPackage;
my $chaine = "comment faire un module en perl?";

print min2maj($chaine),"\n";
print maj2min(min2maj($chaine)),"\n";
print char2ascii($chaine),"\n";
print ascii2char(char2ascii($chaine)),"\n";

__END__
lami20j@debian:~/trash$ perl ccm.pl
COMMENT FAIRE UN MODULE EN PERL?
comment faire un module en perl?
9911110910910111011632102971051141013211711032109111100117108101321011103211210111410863
comment faire un module en perl?
106485010510997108

Répondre à lami20j

2

 Ptesoleil, le 8 aoû 2008 à 10:15:33

Merci de m'avoir répondue.
Mais j'ai encore des questions : ma fonction doit elle obligatoirement retournée quelquechose ?
Si non, dois je déclarer mes arguments dans le rappel de ma fonctions dans le main?
et à quoi sert :

 our @ISA = qw/Exporter/;

Répondre à Ptesoleil