#use Regexp::Common;#expressions regulieres; par exemples pour reconnaitre un entier $RE{num}{int} ou un reel $RE{num}{real}
useFile::Basename;
useEnglish;
my$NOM_PROG=basename$PROGRAM_NAME;#$NOM_PROG contient le nom de ce script (utile pour afficher le nom du script dans les warning (warn) ou les messages d erreur (die) )
#pattern d un reel pour les regex (pour eviter d utiliser $RE{num}{real} du package Regexp::Common qui n est pas toujours disponible)
# Methode : on lance Herezh et on exploite l affichage
# - la ligne commencant par " version" suivi du numero permet de saisir le numero de version
# - la ligne "# (version la plus rapide )" permet de reperer si il s agit d une version HZppfast (en l absence de cette ligne, on en deduit qu il s agit d une version HZpp)
#
my@redir=qx(echo f | $exeHZ | grep version);#appel system de l executable HZ++ en redirigeant l affichage dans la variable @redir (affichage filtre par grep pour ne garder que les lignes "version")
system("rm -f ancienNom");#suppression du fichier ancienNom qui est cree par Herezh
my$no_version='non lue';#numero de version
my$is_fast=0;#indicateur pour savoir si c est la version HZppfast ou non
foreachmy$line(@redir){#parcours de chaque ligne de la redirection de l affichage HZ++
$is_fast=1if($line=~ /version la plus rapide/);#si la ligne indique "version la plus rapide", alors il s agit de HZppfast
}
#construction du label de la version
my$LABEL_VERSION;
if($no_versioneq'non lue'){#si le numero de version n a pas pu etre lu => on prepare un message ECHEC pour le rapport (et on affiche un avertissement dans le terminal avec warn)
$LABEL_VERSION="ECHEC => impossible de lire la version HZ++ (soit c est une erreur liee a l executable HZ++ ($exeHZ), soit c est une erreur liee au script $NOM_PROG)";
warn"\n**ATTENTION (prog:$NOM_PROG) : impossible de lire la version HZ++ (soit c est une erreur liee a l executable HZ++ ($exeHZ), soit c est une erreur liee au script $NOM_PROG)\n\n";
}
elsif($is_fast){#si $is_fast est vrai => le label de la version sera : HZppfast $no_version
$LABEL_VERSION="HZppfast $no_version";
}
else{#sinon => le label de la version sera : HZpp $no_version