Tutoriel
1ere ligne d'un script perl : #! + compilateur utilisé
Ex:
#!/usr/bin/perl
Commentaires : après le signe dièse : #
Ex:
#Voici un commentaire
Les instructions finissent par un point-virgule : ;
Ex:
instr;
Utilisation de librairie :
Fonction: use;
Syntaxe : use nom_lib;
nom_lib : nom de la librairie
Note : CGI et DBI sont des librairies fréquemment utilisées
Variable :
précédé par un signe de dollar : $
Affectation: signe égal : =
Ex: $p = 5;
La valeur de $p est 5.
Tableau :
précédé par un Arobas : @
@tab = ('val1', 'val2'[, ...]);
Accès à un élément d'un tableau
$tab[indice];
indice : premier élément = 0
$#tab : dernier indice d'un tableau
Chaîne de caractère entouré par des guillemets '' ou double-guillemets ""
"etudiants";
'allo';
Concaténation :
avec le point : .
$p = "allo "."toi";
$p = "Je t'ai dit : «".$p."»"; // $p est égal à "Je t'ai dit «allo toi»"
Variable dans une chaine:
Exemple:
$nom = "Toi!"
$p = "Salut $nom"; #$p devient : Salut Toi!
$p = 'Salut $nom'; #$p devient : Salut $nom à cause des guillemets simples
Fonction
Appel : [$val_retour = ]nomFonction[([val1[, ...]])];
Exemple:
fonction;
fonction();
$p=fonction();
$p=fonction($arg1, "arg2");
Entête de fonction
sub nomFonction() {
# Les paramètres sont dans le tableau @_
# les paramètres sont aussi dans la variable $_
# si j'envoie : $res->{NAME} je le met dans un tableau ???????
# comme ceci : @nom_champs = @{$_[0]} ???????
# $_[0] indique le premier parametres
# @{$valeur} conversion d'une $valeur en @tableau
[return (valeur);]
}
Fonction perl:
On peut appelé deux instructions si la première est nulle avec le
mot-clé "Or"
Syntaxe : nomFonction() or instruct;
die "chaine";
Fin du fichier et affiche le message "chaine"
val = length(chaine);
chaine : chaine dont on veut connaitre la longueur
val : longueur de la chaine
print chaine;
chaîne peut être une chaîne de forme : "chaine"
peut être une châine renvoyé par une fonction : nomFonction($arg)
peut être une variable : $chaine
$chaine2 = substr(chaine1, depart, fin) ;
chaine1 : chaine dont on veut une partie
depart : position de debut de la sous-chaine (premier caractères à la position 0)
fin : fin de la sous-chaine
chaine2 : chaine resultante
Nouvel objet : $p = new CGI; # crée un nouvel objet CGI nommé $p.
Accès à un élément d'un objet
$p->fonction()
===============
Objet CGI;
Fonctions:
$p = new CGI;
$p->end_html(); # est égal à </BODY></HTML>
$p->h1([chaine]) # est égal à <H1>chaine</H1>
chaine : chaine de caractères comprises entre la balise <h1></h1>
$p->header(); # est égal à Content-type ... : \n\n
$p->start_html(); # est égal à <HTML><BODY>
$p->param('chaine') # permet d'accéder à la valeur d'un champ 'chaine' (envoyer
par l'adresse)
Exemple : fichier.pl?nom=monNom;
$p->param('nom') est égal à "monNom";
===============
Fonction DBI;
Fonctions:
$retourConnexion = DBI->connect(type_basedonnee, nomUtilisateur, [autre]);
$retourConnexion : pointeur retourné après la connexion
type_basedonnee: Chaîne de caractères définissant le type de base de données et
le nom de la base de données.
Exemple : "dbi:Pg:dbname=root"
dbi:Pg #type de base Postgres
dbname=root #nom de la base est root
nomUtilisateur: Nom d'utilisateur de la base de données
[autre] : ???
Objets:
$retourConnexion:
Fonctions:
$retourConnexion->prepare(commande_sql);
Préparation d'une commande SQL
commande_sql : Est une chaine de caractère contenant une commande SQL
Ex: $retourPrepare->prepare("insert into nomTable ("numero, nom") values ('1', 'monNom')");
$retourPrepare:
Fonctions:
$retourPrepare->execute();
Exécution d'une commande SQL (déjà préparer)
@tableau = $retourPrepare->fetchrow();
Renvoie les valeurs retournées par une requêtes SQL dans un tableau.
$retourNAME = $retourPrepare{NAME}
$retourNAME représente les titres des champs.
Variables:
$DBI::errstr; // erreur lors d'un accès à une base de données.
==========
Condition
Comparaison
chaine1 eq chaine2 : test l'égalité entre deux chaîne
Condition
if ( condition ) {
instruction;
}
[ else {} ]
instruction1 or instruction2; si instruction1 est faux, instruction2 est exécuté.
Boucles:
foreach(@tableau) {};
@tableau représente un tableau d'élément.
chaque élément du tableau à chaque tour peut être accédé
par la variable "$_"
Exemple:
foreach(@tableauNote) {
print "Note : $_";
}
foreach(valeur..valeur2) {};
# la valeur rendu est stocké dans la variable "$_"
foreach (0..5) {
print $_;
# $_[$_ + 1] ?????
}
sub aff_entete_champs()
{
@nom_champs = @{$_[0]} ; #caster le param en tableau
foreach (@nom_champs){
print "<td><b>$_</b>";
}
return ( );
}
sub envoyer_formulaire(){
@nom_champs = @{$_[0]} ; #caster le param en tableau
@contenu = $_[1] ;
print '<form method="post" action="script.pl">'."\n";
print '<table border="1" summary="liste de champs">';
foreach (0..$#nom_champs){
print "<tr><td>".$nom_champs[$_]. " ";
print "<td><input type=\"text\" name=\"$nom_champs[$_]\" value=\" $_[$_ + 1]\"></td>";
print '</tr>';
}
print '</table>';
print '<input type="submit" name="bouton" value="Confirmer">';
print '</form>';
}
Hyperliens
Hyperliens...
- Perl 6 innovation : slides
