IntroCréer son site webHTMLJavaScript • [Perl]
Liens  
 Perl - Générer une page dynamique 

Pour notre première page générée par un script Perl, on va faire au plus simple. Vous allez voir que le plus simple s'avère déjà assez riche. Voici une page qui dit simplement "Bonjour". En HTML, ça donne ceci :

<HTML>
<BODY>
<P>Bonjour</P>
</BODY>
</HTML>

Le script

Il s'agit donc de réaliser un script sur le serveur, qui, lorsqu'on le lance (nous verrons comment plus loin), envoie au navigateur le code ci-dessus. Le script est un simple fichier texte bonjour.pl qu'on créera avec le bloc-notes par exemple. Voici son contenu :

#!c:\perl\bin\perl.exe
print "Content-type: text/html\n\n";
print "<HTML>";
print "<BODY>";
print "<P>Bonjour</P>";
print "</BODY>";
print "</HTML>";
exit 0;

Voici maintenant précisément ce que ce script produira à l'exécution, c'est à dire ce que recevra le navigateur :

Content-type: text/html

<HTML><BODY><P>Bonjour</P></BODY></HTML>

Quand un navigateur reçoit une page web du serveur, elle commence toujours par quelques lignes qui ne s'afficheront pas mais qui sont riches de renseignements pour le navigateur. C'est "l'entête HTTP" qui, dans le cas d'une page web, contient au minimum cette ligne :

Content-type: text/html

Cette ligne renseigne le navigateur sur la nature des données du document. L'entête HTTP doit être impérativement séparé du document par une ligne vide. On génère celle-ci par deux caractères de fin de ligne. Nos scripts ne contiennent en principe que des caractères ASCII, on utilise donc des combinaisons pour les caractères spéciaux. La séquence "\n" signifie "fin de ligne". Voilà pourquoi la ligne du script qui génère l'entête contient deux fois cette séquence, mais ça, vous l'aviez peut-être deviné :

print "Content-type: text/html\n\n";

On est pressé d'arriver au but, mais il y a encore plein de choses à voir. Donc patience et intéressons-nous maintenant à la première ligne du script.

#!c:\perl\bin\perl.exe

Un peu d'histoire pour commencer. C'est sous UNIX qu'internet a été inventé. Sous UNIX, il y a plusieurs langages de commandes. Chaque utilisateur utilise celui qu'il préfère. Tous ces langages permettent de créer des scripts. Pour qu'UNIX s'y retrouve, chaque script commence par le chemin du programme sachant l'interpréter.

Pour les anciens : si on osait, on écrirait en tête d'un fichier de commandes DOS (vous savez, les .BAT !) ceci : #!C:\COMMAND.COM La séquence "#!" est là pour faire joli : c'est une "signature" donnant son sens à la ligne.

La dernière ligne du script sert ici à prendre une bonne habitude. Elle rassure le serveur en lui disant que tout va bien, que le script s'est exécuté correctement :

exit 0;

Bon, on se rapproche de la phase finale. Retenons encore qu'une commande Perl se termine par ";" et que l'instruction qui génère une sortie de texte est print.

Mise en place du script

On s'est donné la peine d'installer un serveur web local car (rappel) pour invoquer un script CGI et récupèrer sa sortie à travers un navigateur, il faut que ça passe par le protocole HTTP.

Apache peut exécuter des scripts situés n'importe où sur le disque, pourvu qu'on lui indique les répertoires les contenant. Il existe un répertoire par défaut chargé d'accueillir les scripts et autres programmes CGI. C'est le répertoire cgi-bin, autrement dit "C:\Program Files\Apache Group\Apache\cgi-bin".

C'est dans ce répertoire que doit être enregistré bonjour.pl et tous ceux à venir dans cette rubrique.

Exécution du script

HTTP permet d'activer les liens et de recevoir des pages. Si le lien pointe vers un programme du serveur, celui-ci sera exécuté sur le serveur et sa sortie sera dirigée vers le navigateur. Pour éxécuter notre script, il suffit d'un lien tel que celui-ci :

<A HREF="http://localhost/cgi-bin/bonjour.pl">Lancer le script</A>

Alors, ça marche ? On a ici affaire à des outils élaborés, à la configuration parfois délicate. Si votre navigateur n'a pas affiché ce simple "Bonjour", c'est que ça coince quelque part. C'est donc le moment de commencer à explorer les liens sur Apache et Perl.

Vous avez décidé de jouer dans la cour des grands, il va donc falloir développer une certaine autonomie. Ça commence par un brin d'humilité, un soupçon d'optimisme et une bonne dose de patience. Bref, c'est comme tout, ça s'apprend :)