On peut s'en sérvir de plusieurs façon :
$youpi =~ m/ma_chaine/;
$ligne =~ s/^<(\w){2,4}.?//;
($rootfile, $extention) = split(/ /, $file);
L'usage le plus simple des expressions rationnelles est la recherche d'une expression litérale par exemple la recherche dans une page .html de tous les liens vers l'exterieur (http: et ftp:):
foreach $ligne(@contenu) { if ($ligne =~ /http:|ftp:/) { print $ligne; } }ou implicitement:
while (<>) { print if /http:/; print if /ftp:/; print if /mailto:/; }
ensuite la substitution avec s/// ou tr qui est un outils too much pour
modifier des fichiers quelqu'ils soient.
exemple:
Vous avez un trouvez un fichier sur le net qui énumére
des adresses ou n'importe quoi d'autres que vous aimeriez bien vous servir
pour votre base de données perso seulement il est au format HTML
(des balises partout) , style:
<TD>abo.wanadoo.fr</TD> <TD>876</TD> </TR> <TR> <TD>salieri.img.fr</TD> <TD>228</TD>etc... mais c'est pas grave il y a perl.
#!/usr/bin/perl -w
# remd: preparation de liste. adelmar alain
$listea =
"lbldom.txt";
# on place les fichiers dans des variables
(pas obligé bonne habitudes)
$listeb =
"lslblserv.html";
open LSA, $listeaor
die "Error: pbOpSrc $!";
# on ouvre le fichier source en lecture.
@contenu =
<LSA>;
# on glisse le contenu à la variable liste @contenu.
close LSA or die
"Error pbShutSrc $!";
#on ferme ou on previent
@nwcontenu =<LSB>; # on prevoit de définir une variable liste pour le résultat.
# pour chaque ligne du contenu {BLOC d'instruction}
foreach $ligne
(@contenu) {
next if length$ligne
<= 6;
# ote les lignes de 7 caractres au plus.
$s1 =
$ligne;
# facultatif, place la ligne dans une nouvelle var.
$s1 =~s/<TD.//;
# substitue le tag de debut de ligne.
push @contenu_moins_tagin,
$s1;
# pousse le contenu dans nlle liste.
}
# on prend le resultat et on recommence avec les
tag de fin de ligne.
foreach $s1
(@contenu_moins_tagin) {
$s2 =
$s1;
$s2 =~ s/()<.?TD.?//;
print "Je traite la ligne: $s2\n";
# facultatif mais joli
push @nwcontenu,
$s2;
}
# On ouvre le fichier de sortie et on ecrit la
liste dessus.
open(LSB, ">$listeb")
or
die "Error pbOpenCible $!";
print LSB @nwcontenu;
close LSB or die
"Error pbShutCible $!";
END;
Les couleurs sont à peu prés celles de gvim lorsqu'il
traite du perl (bonnard non?), bon ceci n'est qu'un exemple et en plus
pas trés beau, mais ça marche (c'est le premier que j'ai
fais pour me faire la main) .
On peut aussi faire plus propre en paufinant (c'est le même mais
ne comprend qu'une boucle foreach):
#!/usr/bin/perl -w
# remd: preparation de liste. adelmar alain
$listea =
"lbldom.txt";
# on place les fichiers dans des variables
(pas obligé bonne habitudes)
$listeb =
"lslblserv.html";
open LSA, $listeaor
die "Error: pbOpSrc $!";
# on ouvre le fichier source en lecture.
@contenu =
<LSA>;
# on glisse le contenu à la variable liste @contenu.
close LSA or die
"Error pbShutSrc $!";
#on ferme ou on previent
@tagot = <