Forum Programmation.perl Comment faire ?

Posté par  .
Étiquettes : aucune
0
20
fév.
2006

Bonjour,

Je débute en Perl, alors je demande a ceux qui ne le sont pas d'être indulgent.

Voila, je cherche comment faire une redirection des erreurs de mon script vers un fichier log.

voici un exemple de mon script:

!/usr/bin/perl -w

open (F,'<intf.pl') || die "Probleme d'ouverture : $!" ;

my $i=0;

while (my $ligne = ) {

$i++;

}

print "\n\011Nombre de lignes du fichier $F : $i \n\n";

###################

ce que je souhaite, le message "Probleme d'ouverture" soit écrit dans un log.

En shell je connais :

fic="intf.pl"

if [ -e $fic ]

then cat $fic

else echo "Probleme d'ouverture" > erreur.log

fi

la redirection d'un message vers un fichier est facile a faire en shell, mais en perl comment faire ?

  • # écrire dans un fichier en perl

    Posté par  . Évalué à 1.

    open(LOG,">file.log");
    print LOG "Test\n";
    }
    close(LOG);
    • [^] # Re: écrire dans un fichier en perl

      Posté par  . Évalué à 2.

      J'ai lu trop vite ...

      Outre l' { en trop qui traine, je ne répond pas à ta question.

      A ma connaissance, die retourne seulement un message sur la sortie d'erreur STDERR.
      Le plus simple, c'est de rediriger la sortie d'erreur ainsi :
      perl ton_script.pl 2> File.log
  • # Si j'ose

    Posté par  (site web personnel, Mastodon) . Évalué à 3.

    La prochaine fois, essaie de trouver un titre plus parlant parce que 'comment faire ?', ça ne va pas attirer les spécialistes :)

    La gelée de coings est une chose à ne pas avaler de travers.

  • # Module Tie

    Posté par  (site web personnel) . Évalué à 2.

    Peut-être que celà répond à ton besoin :
    use Tie::STDERR '>> erreur.log';
    
    Google est ton ami :)

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.