#
#  Petit package d'outils HTML pour montrer comment on exporte
#  des variables et des fonctions.
#  Évidemment les fonctions ci-dessous n'ont pas d'intérêt en
#  dehors du contexte de ce TP.
package html;
use Exporter;
@ISA=('Exporter');
#  Le package exporte une variable et trois fonctions.
@EXPORT=('$html_Version','html_Escape','html_Title',
         'html_Background');
# variable globale au package, elle est donc exportable.
$html_Version = 'html.pm version 1.0';
use strict 'vars';      
# L'emploi de use 'strict rend obligatoire de manipuler
# les variables globales au package en les préfixant par 
# le nom du package : $html::html_Version par exemple ...
sub html_Escape {
#################
# On modifie les caratères accentués les plus usuels ...
  my (@content) = @_;
  my @res;
  foreach (@content) {
    s/é/&eacute;/g;
    s/è/&Egrave;/g;
    s/ç/&ccedil;/g; # etc etc etc ....
    push(@res,$_);
  }
  push(@res,"<!-- *** modifié avec $html::html_Version *** -->");
  return(@res);
}

 		 	
  	


sub html_Title {
################
  my ($title, @content) = @_;
  my (@res);
#
#  On modifie le titre (sous réserve qu'il existe ...).
#
  foreach (@content) {
    s/<TITLE>.*<\/TITLE>/<TITLE>$title<\/TITLE>/gi;
    push (@res,$_);
  }
  return(@res);
}
sub html_Background {
#####################
  my ($background, @content) = @_;
  my (@res);
#
# On ajoute un attribut bgcolor à la balise BODY 
# si elle existe.
#
  foreach (@content) {
    if (/.*<BODY/i) {
      $_ = $&." bgcolor='$background'".$';
    }
    push (@res,$_);
  }
  return(@res);
}
#  Quand on importe un package en utilisant en utilisant 'use'
#  le contenu du package est passé à 'eval'. La dernière expression
#  évaluée doit rendre vrai car sinon 'eval' échoue ...
return(1);

