URL: https://linuxfr.org/forums/programmation-perl/posts/ajouter-une-condition-if Title: Ajouter une condition if Authors: Henri Date: 2015年12月07日T17:13:31+01:00 License: CC By-SA Tags: Score: -4 salut a tous j'ai un code qui me menace ici et je comprend pas ce qui ce passe le code traite des fichiers xml et ecrit les resultats dans un fichier csv auf fait j'aimerai ajouter une condition if dans le cas ou il travaille le reste de fichiers xml, trouve une variable attr_value dont la variable $attr_name correspondante n'existe pas qu'il ecrive 'missing'. je ne sais pas si quelqu'un ici pourrai m'aider. je vous remerci d'avance. ```ruby #!/usr/local/bin/perl -w use strict; use warnings; use XML::Twig; use Text::CSV; use POSIX qw(strftime); use autodie; use File::Basename; my $file1 = shift @ARGV; my @files = glob( '../InputData/*.xml'); @files = grep { $_ ne $file1 } @files if defined $file1; $file1 = basename '..\InputData\DEFAULT\default_sysvalue.xml'; my $date_1 = strftime "%Y%m%d %H:%M:%S", localtime; my $FileResult = '../CSV/DATA.csv'; open( my $Fhhtml, '>', $FileResult ); print $Fhhtml $date_1, "\n"; #a ce niveau le code traite le premier fichier et ecrit juste les noms des variables $attr_name #dans le fichier de sortie my $twig1= XML::Twig->new( twig_handlers => { 'Par' => sub { my $attr_name = $_->{'att'}->{'name'}; print $Fhhtml $attr_name . ", "; }, }, ); print $Fhhtml( (split('_', $file1,2))[0] . ', ' ); $twig1->parsefile($file1 = '..\InputData\DEFAULT\default_sysvalue.xml'); #a ce niveau le code traite le reste des fichiers et ecrit juste les valeurs des variables #$attr_value sous la colonne correspondante a $attr_name dans le cas ou la valeur ($attr_value) #n'existe pas il ecrit a ce niveau 'fault'. Maintenant j'aimerai en plus que dans le cas la #variable $attr_value existe et que la variable $attr_name n'existe pas qu'il ecrive 'missing' for my $file (@files) { my $twig1 = XML::Twig->new( twig_handlers => { 'Par' => sub { my $attr_value = $_->{'att'}->{'value'} // 'fault'; print $Fhhtml $attr_value . ", "; }, }, ); my $result = (split( '_', "\n$file", 2 ) )[0] . ', '; $result =~ s/..\/InputData\///g; print $Fhhtml($result); $twig1->parsefile($file); } close $Fhhtml; ```

AltStyle によって変換されたページ (->オリジナル) /