Perl est un langage interprété, c'est-à-dire qu'il n'est pas compilé.
Les fichiers perl ont l'extension .pl.
Pour les lancer, vous utiliserez la commande perl.
Si vous êtes sous windows, vous devez installer ActivePerl.
Si vous êtes sous Linux, tout est déjà installé, sauf les modules Tk disponibles ici(liste) ou ici directement.
En Perl, les variables sont dividés en trois types :
#!/usr/bin/perl
# #! se prononce "shee-bang". Cette ligne permet d'ouvrir le script directement sous unix
# Sous Unix tapez : chmod 755 script.pl pour le rendre executable puis script.pl
# Sous Dos et Unix (si vous n'avez pas mis la ligne du #!) tapez perl script.pl
$var = "Ceci est une variable scalaire";
@tableau = ("Elément 0","Elément 1","Elément 2","Elément 3");
%tableauassociatif = ("one","un","two","deux");
# Un tableau associatif peut aussi prendre cette forme qui me semble plus facile :
%tableauassociatif2 = ( "one" => "un", "two" => "deux" );
print $var;
print $tableau[0];
print $tableauassociatif{"two"};
# Ces lignes affichent Ceci est une variable simpleElément 0deux à l'écran
Pour définir les variables, on utilise $, @ et % suivant leur type. Pour les manipuler, on utilise toujours $.
Les opérateurs pour les chaînes de caractères :
print "chaine".' '."séparée"; : Pour séparer des chaînes, on utilise ".".
Pour comparer des chaines :
ne : inégalité
eq : égalité
lt : inférieur
gt : supérieur
le : inférieur ou égal
ge : supérieur ou égal
Les opérateurs pour les nombres
+ - * / => addition, soustraction, multiplication, division
** : puissance
% : modulo
$num++ et $num-- => incrémentation et décrémentation
< : inférieur
> : supérieur
<= : inférieur ou égal
>= : supérieur
== : égalité
!= : différence
If et else :
if(condition)
{
Instruction à éxécuter si condition retourne true
}
else
{
Instruction à éxécuter si condition retourne false
}
While :
while(condition) {
Instructions à éxécuter tant que condition retourne true
}
For :
for($i=0;$i<10;$i++) {
Instructions qui vont tourner tant que $i est plus petit que 10, à chaque tour $i s'incrémente
}
L'élément STDIN représente par défaut le clavier.
Exemple de code qui l'utilise :
#!/usr/bin/perl
$in = <STDIN>;
print "\nVous avez écrit : ".$in;
while(<STDIN>) { # on récupère par défaut dans la variable $_
if($_ eq 'help') { print "aide"; }
}
En Perl, la gestion est très facile, comme presque toutes les possibilités de Perl d'ailleurs.
Exemple de code qui ouvre un fichier, écrit son contenu à l'écran puis lui ajoute une ligne :
#!/usr/bin/perl
open(FILE, "fichier");
while(<FILE>) {
print $_;
}
print FILE "Ecriture sur le fichier";
close(FILE);
Pour créer des sockets, on utilisera IO::Socket::INET
Pour ça, il faut rajouter cette ligne :
use IO::Socket::INET
Maintenant on va initialiser le socket :
#Client
$socket = IO::Socket::INET -> new ( Proto => 'udp', PeerAddr => 'localhost', PeerPort => 666 );
#Server
$socket = IO::Socket::INET -> new ( Proto => 'udp', LocalPort => 666 );
On va envoyer/réceptionner les paquets :
#Client
print $socket "test";
#Server
while(1) {
$socket->recv($msg,255);
print $msg;
}
Les modules Tk permettent de créer des applications graphiques :
Fenêtres mère et filles
#!/usr/bin/perl
use Tk;
$FenetrePrincipale = new Maindow;
$FenetrePrincipale -> title("Fenêtre Mère");
$fenetrefille = $FenetrePrincipale -> TopLevel;
$fenetrefille -> title("Fenêtre fille");
$fenetrefille -> raise;
MainLoop();
L'élément Label
Il permet d'écrire du texte et est employé comme suit :
use Tk;
...$fp -> ... : on définit où va être le label.
$fp = new MainWindow;
$fp -> title("Fenêtre contenant un texte");
$texte = $fp -> Label ( -text => "Le texte à écrire" );
$texte -> pack;
MainLoop();
Pour que vos éléments s'affichent, vous devez obligatoirement les packer.
Quelques éléments et leurs paramètres
| Nom | Fonction | Paramètres |
| Label | Permet d'écrire du texte | -textvariable => \$var -text => "Le texte" |
| Entry | Permet à l'utilisateur d'écrire du texte | -textvariable => \$varstockage |
| Button | Affiche un bouton | -text => "Texte du bouton" -command => \&SubAAppeler |
| RadioButton | Affiche un bouton radio | -text => "Le texte du bouton radio" -value => "Valeur qui va aller dans la variable" -variable => \$var |
| CheckButton | Affiche une case à cocher | -text => "Texte de la case à cocher" -variable => \$resultat -onvalue et -offvalue définissent la valeur de $resultat dans l'exemple Si ces paramètres ne sont pas présents $resultat est à 1 ou 0 |
| ListBox | Crée une liste d'élément à sélectionner | -selectmode => "single" Peut être sigle, multiple, extended ou browse Pour les éléments on fait (si le listbox est représenter pas $listbox) : $listbox -> insert ( 0, 'Choix UN', 'Choix DEUX' );-width et -height pour les dimensions |
| Frame | Crée un cadre Pour mettre des éléments dans le cadre on mettra le nom du cadre à la place du nom de la denêtre lors de la création | -relief => 'groove' (peut être 'flat', 'groove', 'raised', 'ridge', 'sunken' ou 'solid') -borderwidth => 2 : largeur des bordures -width et -height pour les dimensions |
| Text | Crée une zone de texte On utilise insert pour remplir l'élément (Voir ListBox) | -width et -height pour les dimensions |
Sources:
http://lionel.romain.free.fr/