Introduction à Perl sur Mac OS X
Les aficionados du scripting étaient ravis d’apprendre que Mac OS X embarquait Perl 5.6 dans son installation par défaut. Perl a été de plus en plus apprécié d’années en années par ceux qui aiment sa modularité, son extensibilité et sa puissance. Perl est la force cachée qui agit derrière tant d’applications Web que, pour beaucoup de personnes, Perl est synonyme de CGI. Il s’intègre simplement à Apache, qui lui aussi est présent dans Mac OS X. Il n’est donc pas très dur de se servir de Mac OS X comme un puissant serveur Web Perl.
Pour démarrer Perl sur Mac OS X, ouvrez une fenêtre Terminal et tapez :
perl -e 'print "Perl on Mac OS X\n"'
Le moteur Perl doit en principe afficher la chaîne de caractères entre double-quotes sur terminal.
Vous pouvez aussi écrire un script dans un éditeur de texte, le sauvegarder dans un fichier et l’appeler à partir de la ligne de commande. Par exemple, vous pouvez sauvegarder la chose suivante dans votre répertoire domestique sous mac_perl.pl :
#!/usr/bin/perl print "Perl on Mac OS X\n";
Vous pouvez changer les propriétés du fichier pour qu’il soit exécutable (utiliser chmod +x mac.pl) et taper ensuite ./mac.pl à partir de la ligne de commande. Le résultat doit être le même que celui de l’exemple précédent.
Vous pouvez écrire des scripts Perl qui font toute sortes de tâches, du rename (renommer) en masse de fichiers à la gestion de bases de données en passant par l’automatisation de tâches de maintenance système. Sa puissance de traitement appliquée aux chaînes de caractères et ses fonctions à expressions régulières en font un outil idéal pour une large variété de tâches. Si vous essayez d’accomplir quelque chose que votre Perl de base ne peut pas accomplir facilement, il y a très probablement un module quelque part (sur le web) qui ajoutera à Perl la fonctionnalité recherchée.
Installation de Modules
Les modules ont été écrits pour répondre à tous les besoins imaginables, des applications d’interfaçage avec des base de données, aux dessins de graphismes et à l’analyse syntaxique des dievsr types de fichiers spécialisés. Un certain nombre de modules Perl sont installés avec Mac OS X; vous les trouverez dans le répertoire /System/Library/Perl. Mais si aucun des modules pré-installés avec Mac OS X ne répond à vos besoins, vous pouvez jeter un oeil sur CPAN, Comprehensive Perl Archive Network (Réseau Complet des Archives Perl) (NDT : Site français intéressant : http://www.perl-gratuit.com/), où des modules (avec beaucoup de documentation et une distribution de Perl) sont proposés.
L’installation d’un nouveau module Perl manuellement, bien que pas vraiment difficile, peut être un parcours assez rébarbatif. Il implique le téléchargement et la décompression du module, sa configuration et sa construction, en s’assurant à chaque fois qu’il n’y a aucune dépendance qui ne soit pas définie ou ou aucun conflit entre modules. Si vous êtes le genre de personne qui aime ce style de procédure, poursuivez. Il y a, cependant, une façon plus facile d’y arriver.
CPAN.pm est un module Perl pré-installé sur Mac OS X dont le but est d’automatiser le téléchargement et la construction de modules. Il s’occupe des situations tordues où certains modules exigent que d’autres modules soient actifs et où ces modules exigent, à leur tour, des modules complémentaires, et ainsi de suite. Il supporte aussi les paquets (bundle) de construction et d’installation, qui sont des groupes de modules liés qui travaillent ensemble pour gérer un jeu particulier de fonctions. L’utilisation de CPAN.pm est facile. Pour monter un shell CPAN interactif, allez dans votre répertoir domestique (”~”) et tapez perl -MCPAN -e shell.
Si c’est la première fois que vous lancez le module, on vous posera une série de questions sur la configuration de votre système. Dans la plupart des cas, les réponses par défaut suffiront, mais assurez-vous de répondre correctement aux questions relatives à l’installation réseau, pour que le module puisse se connecter et aller chercher les modules dont vous besoin. Les réponses que vous donnez seront sauvégardées dans /System/Library/Perl/CPAN.pm. Si votre installation évolue, ou si vous pensez que vous avez mal répondu à une question, vous pouvez changer vos réglages en ouvrant ce fichier avec un éditeur de texte et en modifiant les lignes appropriées.
Les premiers modules que vous devez installer sont ceux du bundle libnet, qui vous aideront entre autres à télécharger de nouveaux modules. Tapez install Bundle::libnet après le prompt shell de CPAN. Vous devez avoir une Connexion active à Internet pour que le bundle puisse être téléchargé. Vous aurez un compte rendu à chaque fois qu’un module sera téléchargé, construit, testé et installé. Pour étendre encore plus les fonctionnalités de Perl, consultez la liste des modules sur CPAN.ORG.
Si vous avez des questions sur l’installation de modules, consultez la FAQ(FOIRE AUX QUESTIONS) CPAN.
Applications Web
L’utilisation la plus commune de Perl et un de ses secteurs de prédilection, sont les CGI : traitement et restitution de données pour les applications Web.
Première chose à faire : lancer le serveur Web Apache. Si vous ne l’avez pas déjà fait, allez dans le tableau de bord Partage dans les Préférences Système et cliquez sur le bouton Démarrer pour activer Le Partage Web. Après quelques secondes, Apache commencera à tourner en arrière-plan. Vous pouvez taper ps -ax dans une fenêtre Terminal pour afficher la liste des processus actifs et vous devriez y voir /usr/sbin/httpd. C’est Apache, aussi connu sous “démon HTTP”. Une fois le Partage Web actif, Apache doit se lancer automatiquement à chaque redémarrage de votre Mac. Maintenant, si vous ouvrez une fenêtre de navigateur et allez à l’adresse http://localhost/ vous devez voir la page d’index d’Apache par défaut qui est affichée après une installation récente.
Apache cherche dans le répertoire /Library/WebServer/Documents le contenu Web à servir. Chaque utilisateur de votre système détient aussi son propre espace de contenu Web, dans le répertoire Sites du répertoire domestique de l’utilisateur. Les répertoires personnels Web des Utilisateurs peuvent être accédés dans un navigateur en préfixant le username de l’utilisateur avec un tilde (~). Ainsi, par exemple, vous pouvez voir le site Web de l’utilisateur nommé earl en aller sur http://localhost/~earl/.
Des scripts CGI Perl (et d’autres) résident dans /Library/WebServer/CGI-Executables sur une installation Mac OS X standard. (Un sous-répertoire cgi-bin peut être placé dans les répertoires domestiques des utilisateurs pour leur permettre de lancer leurs propres scripts CGI sur leurs sites.) Deux scripts CGI doivent déjà être dans le répertoire CGI-EXECUTABLES : test-cgi et printenv. Le premier, test-cgi, est un script shell qui affiche les valeurs de diverses variables d’environnement; printenv exécute une fonction semblable, mais il est écrit en Perl.
Dans votre fenêtre de navigateur, allez sur http://localhost/cgi-bin/printenv (après avoir éventuellement réglé quelques problèmes d’autorisations d’accès). Cela provoquera le lancement du script Perl et l’affichage de ses données dans la fenêtre du navigateur. L’affichage sera sous forme d’un agréable tableau, comportant des noms de variable d’environnement CGI dans la colonne de gauche et les valeurs de ces variables à droite. Parmi les données intéressantes de cette page, il y a le numéro de version d’Apache, la chaîne de caractères User_Agent envoyée par votre navigateur et le nom de fichier du script en cours d’exécution qui doit être /Library/WebServer/CGI-Executables/printenv. C’est un bon scénario à garder à portée de main - vous pourriez en avoir besoin à l’avenir, au moment où vous essayerez de mettre au point un script Perl dépendant de variables d’environnement.
Pour la grande majorité des applications CGI en Perl, vous pourrez employer le module CGI.PM, qui rend l’analyse des données de formulaires et la génération de HTML très facile.
Pour chaque transaction CGI en Perl, Apache doit appeler Perl pour lancer le script CGI. Cela peut passer à une petite échelle, mais si vous administrez un site fortement fréquenté, vous allez vite constater que cette méthode est trop lente. La solution tient dans : mod_perl. Mod_perl est un module d’extension pour Apache qui permet d’intègrer un interprèteur Perl au serveur Web, avec pour conséquence des traitements CGI beaucoup, beaucoup plus rapide. L’installation manuelle de mod_perl peut être un processus difficile, mais cela ne doit pas être plus compliqué que de taper install Bundle::Apache dans un shell CPAN. Cela installera pas que mod_perl, mais un certain nombre d’autres modules qui feront que Perl et Apache ne tourneront plus sans à-coup.
Après avoir lancé l’installation de CPAN, vous devrez ajouter quelques lignes à votre fichier httpd.conf pour indiquer à Apache comment lancer mod_perl.
Ouvrez le fichier /private/etc/httpd/httpd.conf dans un éditeur de texte (en étant connecté sous root). Ajoutez la ligne suivante dans la section LoadModule :
LoadModule perl_module /usr/libexec/httpd/libperl.so
Ajoutez la ligne suivante dans la section AddModule.
AddModule mod_perl.c
Cela indiquera à Apache de lancer mod_perl. Maintenant, pour dire à Apache quels fichiers il doit envoyer à mod_perl pour exécution, il y a un peu plus de directives à ajouter.
<Files *.pl> SetHandler perl-script PerlHandler Apache::Registry PerlSendHeader On Options ExecCGI </Files> <Location /perl-status> SetHandler perl-script PerlHandler Apache::Status order deny,allow deny from all allow from mydomain.com </Location>
Ces directives devraient être suffisantes pour vous permettre de démarrer. Les directives spécifiques à votre installation peuvent varier, selon votre installation et sur votre manière d’employer mod_perl. Plus de détails sur la configuration de httpd.conf pour mod_perl sont disponibles sur perl.apache.org.
Note relative à un problème courant
Une des causes principales de confusion quand on install des modules Perl ou d’autres nouveaux logiciels sur un système Mac OS X tient dans une particularité du système de fichiers HFS+ : il ne sait pas distinguer la casse. Sur un système Unix traditionnel, deux fichiers différents dont les noms diffèrent seulement par la casse - par exemple, CGI et cgi - peuvent exister dans le même répertoire. Le système de fichiers HFS+ considérerait que ces deux sont les mêmes.
Cela peut aboutir à des difficultés d’installation d’un progiciel qui a été conçu pour un système sensible à la casse. Par exemple, libwww-perl installe par défaut un script HTTP appelé HEAD, qui est employée pour effectuer une requête HTTP HEAD. Si ce script est installé dans /usr/bin, il peut écraser le fichier commande /usr/bin/head incorporé à BSD, qui est utilisée pour lire les en-têtes de fichiers. Pour empêcher ce type de conflit quand on est sous HFS+, il est nécessaire de configurer CPAN.PM pour installer les modules dans un répertoire privé. Il est aussi fortement recommander de s’assurer qu’il n’y a aucun fichier dont le nom pourrait créer un problème avant d’installer un nouveau package.

Textes originaux en anglais sur developer.apple.com : Perl on Mac OS X
Chargement
Commentaires récents