Apprendre Perl en 10 minutes
Perl est un langage de programmation de haut niveau puissant, connu pour ses capacités de traitement de texte et sa flexibilité. Développé à l’origine pour les tâches d’administration système, Perl a évolué pour devenir un langage polyvalent utilisé pour le développement web, la programmation réseau et bien plus encore. Ce tutoriel couvre les concepts fondamentaux de Perl pour vous aider à apprendre rapidement le langage.
1. Écrire votre premier programme Perl
Commençons par un programme simple. Créez un fichier nommé hello.pl et saisissez le code suivant :
#!/usr/bin/perl
print "Hello, World!\n";
Enregistrez le fichier et exécutez la commande suivante dans le terminal :
perl hello.pl
La sortie sera :
Hello, World!
Ce programme simple démontre la fonctionnalité de sortie de base de Perl. La fonction print est utilisée pour afficher des informations textuelles dans la console.
2. Syntaxe de base
La syntaxe de Perl est flexible et expressive, avec plusieurs caractéristiques distinctives.
# Ceci est un commentaire
print "Hello, World!\n";
Règles de syntaxe de base en Perl :
- Commentaires : Les commentaires d’une seule ligne commencent par
# - Instructions : Se terminent par un point-virgule
; - Ligne Shebang :
#!/usr/bin/perlen haut des fichiers de script - Variables : Utilisent des caractères spéciaux pour indiquer les types de variables (
$,@,%) - Guillemets de chaîne : Peuvent utiliser des guillemets simples
'ou des guillemets doubles"
3. Variables et types de données
En Perl, les variables sont typées dynamiquement et utilisent des caractères spéciaux pour indiquer leur type.
Variables scalaires (valeurs uniques) :
$name = "Alice";
$age = 25;
$temperature = 36.5;
$is_active = 1; # 1 pour vrai, chaîne vide pour faux
Variables de tableau (listes ordonnées) :
@fruits = ("apple", "banana", "cherry");
@numbers = (1, 2, 3, 4, 5);
Variables de hachage (paires clé-valeur) :
%person = (
"name" => "John",
"age" => 30,
"city" => "New York"
);
3.1 Variables scalaires
Les scalaires contiennent des valeurs uniques comme des chaînes, des nombres ou des références.
# Opérations sur les chaînes
$text = "Perl Programming";
print length($text); # Longueur de la chaîne
print uc($text); # Convertir en majuscules
print lc($text); # Convertir en minuscules
print substr($text, 0, 4); # Extraire une sous-chaîne
# Opérations numériques
$x = 10;
$y = 3;
print $x + $y; # 13
print $x - $y; # 7
print $x * $y; # 30
print $x / $y; # 3.333...
print $x % $y; # 1 (modulo)
3.2 Variables de tableau
Les tableaux sont des collections ordonnées qui peuvent contenir plusieurs valeurs.
@colors = ("red", "green", "blue");
# Accéder aux éléments du tableau
print $colors[0]; # "red" (utiliser $ pour un seul élément)
print $colors[1]; # "green"
print $colors[-1]; # "blue" (dernier élément)
# Opérations sur les tableaux
push(@colors, "yellow"); # Ajouter à la fin
pop(@colors); # Supprimer de la fin
shift(@colors); # Supprimer du début
unshift(@colors, "purple"); # Ajouter au début
# Fonctions de tableau
print scalar(@colors); # Nombre d'éléments
print $#colors; # Dernier index
3.3 Variables de hachage
Les hachages sont des collections de paires clé-valeur.
%student = (
name => "Alice",
age => 20,
major => "Computer Science"
);
# Accéder aux éléments du hachage
print $student{"name"}; # "Alice"
print $student{age}; # 20
# Opérations sur les hachages
$student{"gpa"} = 3.8; # Ajouter une nouvelle paire clé-valeur
delete $student{"age"}; # Supprimer une paire clé-valeur
# Fonctions de hachage
@keys = keys %student; # Obtenir toutes les clés
@values = values %student; # Obtenir toutes les valeurs
4. Flux de contrôle
Perl fournit plusieurs instructions de flux de contrôle pour gérer l’exécution du programme.
4.1 Instructions if
L’instruction if évalue une condition et exécute son bloc si la condition est vraie.
$age = 20;
if ($age >= 18) {
print "Adult\n";
} elsif ($age >= 13) {
print "Teen\n";
} else {
print "Child\n";
}
# if sur une seule ligne
print "Adult\n" if $age >= 18;
4.2 Instructions unless
unless est l’opposé de if - s’exécute lorsque la condition est fausse.
$age = 15;
unless ($age >= 18) {
print "Not an adult\n";
}
# unless sur une seule ligne
print "Not an adult\n" unless $age >= 18;
4.3 Boucles
Perl prend en charge diverses constructions de boucles.
Boucle while :
$count = 0;
while ($count < 5) {
print "Count: $count\n";
$count++;
}
Boucle for :
for ($i = 0; $i < 5; $i++) {
print "i = $i\n";
}
Boucle foreach :
@fruits = ("apple", "banana", "cherry");
foreach $fruit (@fruits) {
print "Fruit: $fruit\n";
}
# Utilisation de la variable par défaut $_
foreach (@fruits) {
print "Fruit: $_\n";
}
last et next :
foreach (1..10) {
last if $_ == 5; # Sortir de la boucle
next if $_ % 2 == 0; # Ignorer les nombres pairs
print "$_\n"; # Sortie : 1, 3
}
5. Sous-routines
Les sous-routines en Perl sont définies à l’aide du mot-clé sub.
Définition de sous-routine de base :
sub greet {
my $name = shift;
return "Hello, $name!";
}
# Appeler la sous-routine
$message = greet("John");
print $message;
Utilisation des paramètres :
sub add_numbers {
my ($a, $b) = @_;
return $a + $b;
}
$result = add_numbers(5, 3);
print "Sum: $result\n";
Paramètres par défaut :
sub greet {
my ($name, $greeting) = @_;
$greeting = "Hello" unless defined $greeting;
return "$greeting, $name!";
}
print greet("Alice"); # "Hello, Alice!"
print greet("Bob", "Hi"); # "Hi, Bob!"
6. Expressions régulières
Perl est célèbre pour ses puissantes capacités d’expressions régulières.
Correspondance de motif de base :
$text = "Hello, World!";
if ($text =~ /Hello/) {
print "Found 'Hello'\n";
}
# Correspondance insensible à la casse
if ($text =~ /world/i) {
print "Found 'world' (case-insensitive)\n";
}
Substitution :
$text = "I like cats and cats are cute";
$text =~ s/cats/dogs/g; # Remplacer toutes les occurrences
print "$text\n"; # "I like dogs and dogs are cute"
Extraction des correspondances :
$email = "[email protected]";
if ($email =~ /(\w+)@(\w+\.\w+)/) {
print "Username: $1\n"; # "user"
print "Domain: $2\n"; # "example.com"
}
7. Opérations sur les fichiers
Perl fournit des méthodes simples pour lire et écrire des fichiers.
Lecture de fichiers :
# Lire un fichier entier
open(my $fh, '<', 'example.txt') or die "Cannot open file: $!";
my $content = do { local $/; <$fh> };
close($fh);
print $content;
# Lire ligne par ligne
open(my $fh, '<', 'example.txt') or die "Cannot open file: $!";
while (my $line = <$fh>) {
print $line;
}
close($fh);
Écriture de fichiers :
# Écrire dans un fichier
open(my $fh, '>', 'output.txt') or die "Cannot open file: $!";
print $fh "Hello, Perl!\n";
close($fh);
# Ajouter à un fichier
open(my $fh, '>>', 'output.txt') or die "Cannot open file: $!";
print $fh "Appending new content.\n";
close($fh);
8. Fonctions intégrées
Perl est livré avec de nombreuses fonctions intégrées utiles.
Fonctions de chaîne :
$text = " Perl Programming ";
print length($text); # Longueur de la chaîne
print uc($text); # Convertir en majuscules
print lc($text); # Convertir en minuscules
print substr($text, 0, 4); # Extraire une sous-chaîne
print index($text, "Prog"); # Trouver la position d'une sous-chaîne
Fonctions de tableau :
@numbers = (3, 1, 4, 1, 5, 9, 2);
print join(", ", sort @numbers); # "1, 1, 2, 3, 4, 5, 9"
print join(", ", reverse @numbers); # "2, 9, 5, 1, 4, 1, 3"
# Filtrer un tableau
@filtered = grep { $_ > 3 } @numbers;
print join(", ", @filtered); # "4, 5, 9"
# Transformer un tableau
@doubled = map { $_ * 2 } @numbers;
print join(", ", @doubled); # "6, 2, 8, 2, 10, 18, 4"
Fonctions de hachage :
%person = (name => "Alice", age => 25, city => "New York");
@keys = keys %person; # Obtenir toutes les clés
@values = values %person; # Obtenir toutes les valeurs
# Vérifier si une clé existe
if (exists $person{age}) {
print "Age exists\n";
}
9. Modules Perl
Perl dispose d’un riche écosystème de modules disponibles via CPAN.
Utilisation des modules de base :
use strict;
use warnings;
use Data::Dumper;
%data = (name => "Bob", age => 30);
print Dumper(\%data); # Affichage formaté de la structure de données
Installation et utilisation des modules CPAN :
# Installer un module depuis CPAN
cpan install JSON
use JSON;
# Analyser du JSON
$json_string = '{"name": "Alice", "age": 25}';
$person = decode_json($json_string);
print $person->{name}; # "Alice"
# Générer du JSON
$person_hash = { name => "Bob", age => 30 };
$json_output = encode_json($person_hash);
print $json_output; # {"name":"Bob","age":30}
10. Guide de style Perl
Perl a des conventions communautaires qui favorisent un code propre et lisible.
Indentation : Utilisez 4 espaces pour l’indentation.
Nommage des variables :
- Utilisez des noms descriptifs
- Suivez la convention snake_case
- Utilisez des noms de variables significatifs
Organisation du code :
- Utilisez
use strict;etuse warnings;en haut des scripts - Déclarez les variables avec
mypour limiter la portée - Utilisez des noms de sous-routines significatifs
Documentation :
- Utilisez POD (Plain Old Documentation) pour documenter le code
- Incluez des commentaires pour la logique complexe
La flexibilité de Perl et ses puissantes capacités de traitement de texte en font un excellent choix pour l’administration système, le développement web et les tâches de traitement de données. Son riche écosystème de modules et le solide soutien de sa communauté continuent de le rendre pertinent dans les environnements de programmation modernes.
