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 :

erreur script perl


Sujet :

Langage Perl

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 9
    Points : 5
    Points
    5
    Par défaut erreur script perl
    Bonjour à tous,

    je suis en train de m'initier au perl...je dois utiliser la commande system pour lancer ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    # compilation des fichiers povray
    sub createPovFiles
    {
     	system "for((i=0;i<@ARGV[5];i++));do povray @ARGV[3]$i.ini @ARGV[3]$i.pov;done";
    }
     
    createPovFiles
    Or lorsque je lance perl mon_script.pl j'ai l'erreur suivante :
    sh: Syntax error: Bad for loop variable

    Pourtant lorsque je lance dans un shell :
    for((i=0;i<10;i++));do povray coucou$i.ini coucou$i.pov;done
    cela fonctionne

    quelqu'un pourrait il me venir en aide svp?

    merci d'avance

  2. #2
    Membre habitué

    Profil pro
    Inscrit en
    Août 2005
    Messages
    118
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 118
    Points : 142
    Points
    142
    Par défaut
    Bonjour,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     	system "for((i=0;i<@ARGV[5];i++));do povray @ARGV[3]$i.ini @ARGV[3]$i.pov;done";
    Dans une chaîne à double quote $i va être interprété par Perl et pas par le shell.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    for($i=0;$i<@ARGV[5];$i++){
              system("povray @ARGV[3]$i.ini  @ARGV[3]$i.pov");
    }
    Marcherai sans doute mieux.
    Par ailleurs, il est plus élégant et lisible de nommer variables
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    my ($foo, $bar, $foobar) = @ARGV;
    Enfin, il existe make ou ant qui sont peut-être plus adapté lorsqu'on veux compiler une série de fichiers

    A+
    Joris

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 9
    Points : 5
    Points
    5
    Par défaut
    Merci pr ta réponse. j'ai testé ceci et ca fonctionne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for ($i = 0; $i < $ARGV[5]; $i++) {
    		system "povray ".$ARGV[3]."_0".$i.".ini ".$ARGV[3]."_0".$i.".pov";
    	}
    ++

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

Discussions similaires

  1. Erreur script perl
    Par xunil2003 dans le forum Langage
    Réponses: 3
    Dernier message: 24/04/2012, 15h45
  2. Script perl .pl et erreur 500
    Par gunichou dans le forum Web
    Réponses: 2
    Dernier message: 05/10/2008, 17h58
  3. [AJAX] Erreur Serveur 500 sur script perl
    Par fabrice91 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 19/06/2007, 12h21
  4. Réponses: 1
    Dernier message: 16/04/2007, 15h14

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