my Perl is rusted...
This commit is contained in:
		
							parent
							
								
									8684520c5a
								
							
						
					
					
						commit
						c6d8042995
					
				
							
								
								
									
										68
									
								
								chap/Perl.tex
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										68
									
								
								chap/Perl.tex
									
									
									
									
									
										Normal 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
									
								
							
							
						
						
									
										5
									
								
								code/id2h.pl
									
									
									
									
									
										Executable 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
									
								
							
							
						
						
									
										8
									
								
								code/id2h.pm
									
									
									
									
									
										Executable file
									
								
							| @ -0,0 +1,8 @@ | ||||
| #!/usr/bin/perl -w | ||||
| use strict; | ||||
| sub TraiterLigne($) | ||||
| { | ||||
| my $in = shift; | ||||
| print "input: $in\n"; | ||||
| } | ||||
| 1; | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user