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 :

Une substitution n'a pas lieu!


Sujet :

Langage Perl

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2007
    Messages
    57
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2007
    Messages : 57
    Par défaut Une substitution n'a pas lieu!
    Bonjour,
    J'avais pour habitude de programmer en Perl sous linux. Mais sous Mac, une erreur que je ne comprends pas à lieu :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    #!/usr/bin/perl
    use ("function.pl");
    #Testing some of function I have created.
     
    ##Test of StringToRegex :
    StringToRegex("acvgayaaygaratcaaraayywytcg");
    le bout de code précédent me renvoie constamment l'erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    syntax error at /Users/lainux/Stage/test.pl line 2, near "use ("
    Execution of /Users/lainux/Stage/test.pl aborted due to compilation errors.
     
    exception_handler::tm_die      in test.pl line 2
    Program exited.
    J'ai essayé toute les écritures possible pour l'arument de la fonction use(), mais rien y fait.
    Quelqu'un aurais une idée?

    Merci d'avance

    Mayeu.tik

    P.S.: si je remplace use, par require 'function.pl';, j'obtient l'erreur suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    function.pl did not return a true value at /Users/lainux/Stage/test.pl line 2.
     
    exception_handler::tm_die      in test.pl line 2
    Program exited
    Mon fichier fonction ce trouve bien dans le même dossier, et a les droits!

  2. #2
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2007
    Messages
    57
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2007
    Messages : 57
    Par défaut
    Auto résolue, mon fichier funtion.pl ne contenant que des subroutine, ce doit de renvoyer une valeur autre que 0. Donc ajout de return 1; à la fin du fichier!

    Par contre autre erreur, une substition ne marche :/

    test.pl :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    #!/usr/bin/perl
    require 'function.pl';
    #Testing some of function I have created.
     
    ##Test of StringToRegex :
    $primer = "acvgayaaygaratcaaraayywytcg";
    $regex = StringToRegex($primer);
     
    #Debug
    print $regex;
    function.pl :
    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
    30
    31
    32
    33
    #!/usr/bin/perl
     
    sub StringToRegex($primer) {
    	#Debug
    	#print $i++." ".length($primer)."\n";
     
    	#Upercase
    	$primer = lc($primer);
     
    	#Debug
    	#print $i++." ".length($primer)."\n";
     
    	#Translate the primers sequence in Regex
    	$primer =~ s/n/[actg]/;
    	$primer =~ s/v/[gac]/;
    	$primer =~ s/b/[gtc]/;
    	$primer =~ s/h/[atc]/;
    	$primer =~ s/d/[gat]/;
    	$primer =~ s/k/[gt]/;
    	$primer =~ s/s/[gc]/;
    	$primer =~ s/w/[at]/;
    	$primer =~ s/y/[ct]/;
    	$primer =~ s/m/[ac]/;
    	$primer =~ s/r/[ag]/;
     
    	#Debug
    	print $i++." ".length($primer)."\n";
    	print $primer."\n";
     
    	return $primer;
    }
     
    return 1;
    et bien ceci me renvoie ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    0 40
    ac[gac]ga[ct]aayga[ag]atcaaraayy[at]ytcg
    ac[gac]ga[ct]aayga[ag]atcaaraayy[at]ytcg
    alors que les "y" sont sensé être changé en "[ct]". Je ne voie pas d'ou peu venir l'erreur, la ligne est exactement la même que les précedente :/

  3. #3
    Membre expérimenté
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    172
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 172
    Par défaut
    Salut,

    il faut utiliser le modificateur /g pour remplacer toutes les occurences
    s/motif/remplacement/g;
    donc dans ton cas

  4. #4
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2007
    Messages
    57
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2007
    Messages : 57
    Par défaut
    En effet jávai totalement oublié cette propriété!

    Merci de ton aide en tout cas!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 6
    Dernier message: 27/04/2010, 18h17
  2. Install de php sur une mdk 9.1: pas de php.ini
    Par xjinh dans le forum Mandriva / Mageia
    Réponses: 12
    Dernier message: 01/09/2004, 12h07
  3. Une application Dialog based pas rectangulaire....
    Par feed_our_vision dans le forum MFC
    Réponses: 2
    Dernier message: 14/06/2004, 10h10
  4. une comparaison qui marche pas.
    Par gandf dans le forum C++Builder
    Réponses: 7
    Dernier message: 16/02/2004, 15h59
  5. [procédure PG] Une erreur mystérieuse...ou pas
    Par doohan dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 09/07/2003, 17h16

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