Apprenez à programmer en Perl !
Un « langage de script »
On entend souvent parler de « langage de script » lorsque l’on désigne certains langages comme Perl, PHP, Python ou encore Ruby, mais que signifie cette expression, au juste ? Pour comprendre cette distinction, il nous faut examiner brièvement les différentes façons dont les programmes peuvent être exécutés sur un ordinateur. Au départ, un programme se présente toujours comme un ensemble de fichiers qui ne contiennent rien d’autre que du texte. Cet ensemble de fichiers forme ce que l’on appelle le code-source du programme. Le code-source est rédigé dans un langage de programmation qui est compréhensible par les humains (du moins ceux qui savent programmer ). Il existe de très nombreux langages de programmation, dont Perl fait partie. Lorsque l’on veut exécuter un programme dont on possède le code-source, la première chose à faire est de le compiler. La compilation, c’est simplement le fait de transformer un programme écrit dans le langage X afin de lui donner une représentation abstraite que l’ordinateur peut comprendre. Typiquement, cette représentation abstraite modélise une série d’instructions. Cette étape de compilation est réalisée par ce que l’on appellera pour l’instant un super-programme.
Après la phase de compilation, il peut se passer plusieurs choses, selon le langage (ou plutôt la technologie) utilisé(e) :
Le super-programme peut décider d’exécuter directement les instructions qu’il vient de compiler. Dans ce cas de figure, le super-programme s’appelle un interpréteur. Alternativement, le super-programme peut décider de créer un nouveau fichier, dans lequel il va écrire les instructions qu’il vient de compiler, dans un langage compréhensible cette fois directement par l’ordinateur (le langage machine), et ce super-programme s’appelle alors, simplement, et par abus de langage, un compilateur. Il existe encore d’autres cas de figure possibles que nous tairons ici (ce n’est pas le sujet), mais ce qu’il faut retenir, c’est simplement que dans un cas, le programme que l’on vient de compiler est exécuté par l’interpréteur, alors que dans l’autre cas, le programme peut être exécuté directement par la machine. Dans ces conditions, ce que l’on appelle un langage de script, c’est un langage avec lequel les programmes sont compilés et interprétés dans la foulée. Ceci a l’avantage de rendre les programmes faciles à maintenir et à corriger (sans passer par une étape de compilation indépendante qui peut parfois être longue).En ce qui nous concerne, les programmes (ou scripts) que l’on écrit en Perl sont exécutés par un interpréteur qui se nomme… perl.
Que peut-on programmer en Perl ?
Comme on l’a dit plus haut, bien que Perl ait initialement été conçu pour être un langage de scripts d’administration système sous UNIX (rôle qu’il remplit encore très bien aujourd’hui), il s’agit véritablement d’un langage généraliste (y compris sous Windows), et qui est employé sur des projets de toutes tailles, soit comme langage principal, soit, comme en atteste son surnom, à la façon d’un « rouleau de scotch » grâce auquel on peut faire communiquer des programmes entre eux pour former de gros systèmes. Évidemment, là où il est le plus fort et le plus intéressant, cela reste le traitement de fichiers et de données, mais grâce à ses nombreux modules, Perl permet de produire très rapidement des programmes capables de se connecter à Internet, des sites et des applications web ou des logiciels avec des interfaces graphiques ! À titre d’exemples d’applications et de sites web connus qui utilisent Perl aujourd’hui, on pourra citer BugZilla, Amazon.com ou encore IMDb.
La philosophie de Perl
Tous les langages de programmation s’articulent autour d’une philosophie de base qui les définit. Celle de Perl tient globalement en une poignée de devises :
« Do what I mean ». Perl est un langage réputé pour accomplir la volonté du programmeur plutôt que d’exécuter « bêtement » ce qu’on lui dit. Cela signifie que le langage est assez intelligent pour comprendre, suivant le contexte, ce que l’on veut faire. Ainsi, pour faire accomplir une tâche donnée à Perl, on peut la plupart du temps se contenter de formuler les étapes principales de l’algorithme : le langage est conçu de manière à exécuter automatiquement la plupart des conversions et des micro-tâches que requiert chaque étape, que l’on serait obligé d’expliciter dans un langage de moins haut niveau d’abstraction tel que C ou C++.« There is more than one way to do it ». En Perl, pour réaliser une opération donnée, ou résoudre un problème, il existe toujours une multitude de solutions différentes, plus ou moins évidentes, plus ou moins explicites, plus ou moins élégantes, plus ou moins efficaces. Cela signifie que lorsque l’on cherche à coder rapidement quelque-chose et que l’on est habitué à utiliser Perl, on se retrouve rarement sans ressource, à devoir réfléchir pendant longtemps : il nous vient toujours au moins une solution directe pour résoudre le problème.« Things that are different should look different ». Il s’agit là de l’un des aspects de Perl sur lesquels on plaisante le plus souvent : un code-source écrit en Perl a la réputation d’être moche à regarder. Cela est dû au choix du créateur de Perl de faire en sorte que les éléments du langage de natures ou de fonctions différentes soient facilement reconnaissables visuellement, en usant notamment de symboles (les fameux sigils). En usant de ces symboles, le programmeur Perl peut exprimer avec très peu de texte des instructions compliquées, et comprendre en un coup d’œil ce à quoi chaque mot fait référence.