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 :

equivalant du 2>/dev/null en perl


Sujet :

Langage Perl

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Mars 2006
    Messages
    624
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 624
    Par défaut equivalant du 2>/dev/null en perl
    Bonjour,

    Je lance une commande perl (ou je teste un répertoire).
    Cependant si celui ci n'existe pas, au lieu de renvoyer une erreur, je souhaiterai qu'elle soit rediriger vers un fichier comme sous unix, ainsi le message d'erreur ne s'affiche pas.

    Ou tester si mon répertoire existe ou pas

    Merci

  2. #2
    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 : 59
    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
    Par défaut
    Je ne comprends pas bien : qui génère l'erreur sur STDERR ?
    Ton script ?
    Un module que tu ne génères pas ?

    Si c'est ton script, tu peux simplement filtrer cet affichage à l'aide d'un test.
    Si c'est un module que tu ne maitrises pas, il faut capturer l'exception à l'aide de la construction eval { ... }.
    Voir la doc sur les captures d'exception :


  3. #3
    Membre éclairé
    Inscrit en
    Mars 2006
    Messages
    624
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 624
    Par défaut
    en fait dans un script perl, j'ai deux solutions pour créer mon répertoire sous windows.

    system ("md $repertoire 2>NUL ");

    #ou
    mkdir ($repertoire, 0777);
    si mon repertoire existe déjà, je ne veux pas avoir de retour d'erreur.
    ors lorsque j'interroge le coderetour par $?, j'ai toujours 255.

    Comment puis je faire pour ne pas générer d'erreur, lors de ce test.

    Merci

  4. #4
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 822
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    my $repertoire = "/home/vince2005/temp";
    # création du répertoire s'il n'existe pas
    unless ( -d $repertoire) {
      mkdir($repertoire, 0777);
    }
    Voilà

    NB: Apprenez à être clair dans vos demandes.

    Merci

  5. #5
    Membre chevronné Avatar de Beniou
    Homme Profil pro
    Inscrit en
    Novembre 2009
    Messages
    357
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Novembre 2009
    Messages : 357
    Par défaut
    Pour compléter la solution de Djibril, je dirais qu'il faut ajouter un test sur la création dans le cas où le répertoire ne peut pas être crée (problème de droits, chemin farfelu etc.) pour ne pas avoir de surprise dans la suite du script. Ou si tu ne veux vraiment aucun message d'erreur, attribue une valeur à un booléen que tu testes après...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    mkdir($repertoire, 0777) or die "Erreur creation : $!\n\n";

Discussions similaires

  1. [SHELL] /dev/null equivalent ?
    Par Galevsky dans le forum Windows
    Réponses: 2
    Dernier message: 10/11/2007, 23h59
  2. equivallent de int(11) NOT NULL default '0' en oracle
    Par soumia1988 dans le forum Oracle
    Réponses: 4
    Dernier message: 09/03/2007, 15h35
  3. Problème redirection /dev/null
    Par Marty000 dans le forum Programmation et administration système
    Réponses: 1
    Dernier message: 30/01/2007, 17h30
  4. Equivalent en C d'une commane de Perl
    Par doderic dans le forum C
    Réponses: 3
    Dernier message: 14/02/2006, 16h08
  5. Comment rediriger la sortie vers /dev/null
    Par dclink dans le forum C
    Réponses: 4
    Dernier message: 24/06/2003, 18h23

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