You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
68 lines
2.1 KiB
68 lines
2.1 KiB
\chapter{Perl} \label{chap:Perl} \index{Perl} |
|
|
|
|
|
Également connu sous le nom de |
|
\textsl{Pathologically Eclectic Rubbish Lister}% |
|
\footnote{collectionneur pathologique de déchets variés}, |
|
Perl est un langage qui a été crée en 1987 par Larry Wall comme un |
|
substitut moderne au classique combo shell/sed/awk. |
|
\index{shell} \index{sed} \index{awk} |
|
Il est de ce fait très orienté vers la manipulation de |
|
données textuelles et contient d'énormes facilités d'utilisation |
|
des expressions régulières. |
|
|
|
Il fut un temps, dans le siècle précédent, où il était le maitre |
|
incontesté du Web\index{web} interactif, de par son intégration |
|
dans le serveur Apache\index{Apache}, |
|
et de modules d'écriture de clients http\index{http}. |
|
|
|
|
|
Le débutant peut facilement n'utiliser qu'un sous-ensemble du langage, |
|
mais ce serait se priver de quelques \textit{patterns} assez |
|
efficients. |
|
|
|
|
|
\section{Le texte} |
|
|
|
Un cas concret~: générer du code en langage \texttt{C} à partir |
|
d'un fichier traité ligne par ligne. Chacune de ces lignes est |
|
de la forme \texttt{ID un texte quelconque.} avec ID qui est |
|
une courte chaine alphabétique. Le résultat de la conversion |
|
sera \texttt{char *p\_ID "un texte quelconque.";} et pourra |
|
être utilisé par un \texttt{\#include "fichier.h"} bien |
|
classique. |
|
|
|
\subsection{Le traitement} |
|
|
|
Ce traitement peut être décomposé en deux actions emboitées~: |
|
d'une part traiter une ligne, |
|
et d'autre part, traiter un fichier plein de lignes. |
|
|
|
La première va être encapsulée dans un module Perl. |
|
|
|
\lstinputlisting[language=perl]{code/id2h.pm} |
|
|
|
\subsection{L'interface} |
|
|
|
Quand à l'interface utilisateur, quelques arguments sur |
|
la ligne de commande feront l'affaire. |
|
|
|
\lstinputlisting[language=perl]{code/id2h.pl} |
|
|
|
|
|
\section{Le \texttt{http}} |
|
|
|
|
|
\section{RFC 8589} |
|
|
|
RFC 8589 is an “informational” RFC that serves as a guide for |
|
developers of applications, such as email clients, Web browsers |
|
and more, to implement the “leaptofrogans” URI scheme |
|
(see also the official URI schemes registered with the IANA). |
|
Nobody is under any obligation, but RFC 8589 establishes a clear |
|
path for enabling direct links to Frogans sites in online content. |
|
|
|
|
|
\section{oneliners} |
|
|
|
|
|
|