my Perl is rusted...

This commit is contained in:
tth 2020-11-27 14:43:55 +01:00
parent 8684520c5a
commit c6d8042995
4 changed files with 82 additions and 0 deletions

68
chap/Perl.tex Normal file
View File

@ -0,0 +1,68 @@
\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}

5
code/id2h.pl Executable file
View File

@ -0,0 +1,5 @@
#!/usr/bin/perl -w
use strict;
use code::id2h;
TraiterLigne("ID un texte quelconque.");

8
code/id2h.pm Executable file
View File

@ -0,0 +1,8 @@
#!/usr/bin/perl -w
use strict;
sub TraiterLigne($)
{
my $in = shift;
print "input: $in\n";
}
1;

View File

@ -90,6 +90,7 @@ en ligne sur le site du Tetalab. Your mileage may vary\dots
\input{chap/son} \input{chap/son}
\input{chap/image} \input{chap/image}
\input{chap/reseau} \input{chap/reseau}
\input{chap/Perl}
\input{chap/musique} \input{chap/musique}
% \input{chap/puredata} % \input{chap/puredata}
\input{chap/MIDI} \input{chap/MIDI}