Hé hé hé !!!
L'utilisation de Perl est justifiée par la
faible quantité de données de nos corpus alliée à la simplicité syntaxique de
Perl travailler sur les données textuelles.
Il ne s'agit pas ici d'un tutorial Perl
général, plutôt l'utilisation de Perl dédiée à notre projet.
Entrées/Sorties
Fichier Texte
Débutons par les entrées/sorties fichier avec
Perl. Nous allons travailler sur des fichiers textes, donc voici la
manipulation de ceux-ci via Perl.
OUVRIR LE FICHIER TEXTE POUR ACCÉDER À SON
CONTENU
- ouverture en interne, fichier à traiter
indiqué à l'intérieur du script.
° Fonction open() : premier argument, nom du
flux à ouvrir et
second argument, chemin vers le fichier texte.
Retourne un flux vers le fichier.
Pour écrire dans le fichier, ouvrir EN ÉCRITURE, indiquer ">" devant le fichier.
° Utiliser alors la fonction print FLUX string pour écrire avec ce même flux.
- ouverture externe, fichier à traiter indiqué en argument du script
° On utilise l'opérateur diamant <> pour
récupérer l'argument en entrée
while ($ligne = <>) { -->
exemple d'utilisation dans une boucle "while", lecture ligne par
ligne. Chaque ligne est ici enregfistrée dans la variable $ligne ; donc une
nouvelle ligne à chaque tour de boucle.
La boucle s'arrête
lorsqu'il n'y a plus rien à lire.
Deux variables magiques :
$_ est la valeur de la ligne courant et $. est le numéro de la ligne courante.
° Aussi,
conventionnellement est défini @_ qui contient la liste des arguments. $_[]
permet d'accéder à un élément de cette liste.
Par exemple, $_[0] est le
premier élément donné en argument.
L'ouverture permet d'atteindre le contenu
texte de notre fichier.
Ce qui nous intérèsse c'est la manière dont on
va traiter ce contenu textuel, voici les fonctions usuelles et utiles à cet
égard.
TRAITEMENT DU CONTENU TEXTUEL
° Fonction split() : premier argument,
expression régulière notée entre // permettant de définir la délimitation,
second argument chaîne de caractères à découper.
Exemple
$cible = "Un Deux
Trois Quatre";
@table = split(/
/g,$cible);
Ici on récupère le
tableau table les différentes séquences issues du découpage de cible avec
l'espace pour délimiteur. Retourne la liste de séquences si affectation à une
liste @ ou le nombre de séquences si affectation à un scalaire $.
Ainsi, on obtient :
$table[0] :
"Un"
$table[1] :
"Deux"
etc.
° Concaténation de
deux chaînes de caractères avec l'opérateur .
Exemple
$a = "moi"
$b = "je"
$a . $c ->
"moi je"
° opérateur répétition
x
Exemple "a"
x 3 -> "aaa"
° Majusculer up() et
minusculer lc() : texte à modifier en argument.
° Fonction index()
vérifie si une chaîne de caractères est contenue dans une autres ; premier
argument, la sous-chaîne et second argument, la chaîne.
Renvoie -1 si faux, 0
si vrai.
Permettra notamment de
compter le nombre d'ouccurences d'une certaine expression d'un texte.
° Fonction length()
permet de donner la taille d'une chaîne de cacaractères.
Un argument : une chaîne
de caractères. Renvoie l'entier correspondant à la taille.
FERMETURE FICHIER
Après avoir traité les
données, penser à fermer le flux ouvert précédemment.
° Fonction close() : un argument, le nom du flux donné dans open(). <> si ouverture externe, via entrée standard.
Nous verrons dans le
prochain article un peu plus profondémment l'utilisation des expressions
régulières.