Partie 2

Voici quelques exercices pour découvrir les premiers éléments du langage Perl : variables scalaires, chaines, entrées-sorties standard et fichiers, boucle while ...
Chacun de ces petits exercices est centré sur un aspect précis du langage Perl et de son utilisation ici avec Cygwin.

Exercices

  • exo0 : Script direct en ligne de commande
    perl -v :

    Comme on peut le voir ici, l'option -v permet d'avoir des informations sur la version de Perl installée (ici, la 5.12.3)

    man perl -> cette commande permet d'avoir accès au manuel de la commande "perl"

    perl -e '$prenom ="Jean"; print "Bonjour $prenom\n"' -> l'option -e permet d'executer ce qui la suit en tant que script perl indépendant. Elle prend comme argument ce qui est contenu entre les guillements simples. Cette commande donne comme résultat "Bonjour Jean" étant donné que la variable $prenom à imprimer contient la valeur "Jean".

    perl -e 'foreach $i (0..10) { print "7x$i = ",7*$i,"\n" ;}'-> cette commande lance une boucle (foreach), demandant à ce que pour chaque élément trouvé dans une liste allant de 0 à 10, on imprime le produit de cet élément multiplié par 7 (7*$i = 7 x l'élement) avant de retourner à la ligne.


  • exo1 : Interpolation et concaténation des variables
    Executer ce script :
    #!/usr/bin/perl -w
    $age = 25; $prenom ="Jean"; $salut = "Bonjour";
    $s1 = "Bonjour $prenom\n" ;
    print $s1;
    $s2 = 'Bonjour $prenom\n' ;
    print $s2;
    $s3 = $salut." ".$prenom."\n"; print $s3;
    $s4 = "$salut $prenom\n"; print $s4;

    -> Résultat

    Nous pouvons remarquer que Perl ne prend pas en compte ce qui est contenu entre guillements simples, ce qui a pour effet d'imprimer dans fenêtre "bonjour$prenom" tel quel. Comme il n'interprète pas non plus le retour à la ligne \n, il imprime également la suite. Avec les guillemets double, les variables sont interprétés correctement, et perl remplace la variable $prenom par son contenu (Jean).
    -> Script modifié


  • exo2 : Entrées-sorties console
    #!/usr/bin/perl -w
    # erreur de syntaxe classique : ne pas mettre de virgule après le filehandle
    print STDOUT "Quel est ton prénom ? ";
    $prenom = ;
    print "Bonjour $prenom, comment vas-tu ? \n";

    Ce code est-il correct ? Commenter l'exécution ensuite. Corriger si nécessaire. Compléter le dialogue en demandant l'age

    -> Script corrigé
    -> Résultat

  • exo3 : Opérateurs numériques
    -> Script corrigé
    -> Résultat

  • exo5 : Accès aux fichiers
    -> Script

  • exo6 : Ecrire dans un fichier
    -> Script
    -> Commande
    -> Résultat

  • exo7 : Copier un fichier
    -> Script
    -> Commande
    -> Fichier d'origine (à copier)
    -> Résultat