Introduction perl pratical extraction and report language pathologically eclectic rubbish lister
Download
1 / 25

- PowerPoint PPT Presentation


  • 112 Views
  • Uploaded on

Introduction à Perl (Pratical Extraction and Report language) (pathologically Eclectic Rubbish Lister). Magali Sauvergeat. Historique / Caractéristiques Installation / Début d ’un programme Variables / Structures de contrôle Contrôle spéciaux Expressions Rationnelles Gestion Fichiers

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about '' - timberly


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
Introduction perl pratical extraction and report language pathologically eclectic rubbish lister l.jpg

Introduction à Perl(Pratical Extraction and Report language)(pathologically Eclectic Rubbish Lister)

Magali Sauvergeat


Sommaire l.jpg

Historique / Caractéristiques

Installation / Début d ’un programme

Variables / Structures de contrôle

Contrôle spéciaux

Expressions Rationnelles

Gestion Fichiers

Appel système / Fonctions

Orienté Objet

Exemples de CGI Socket

Sommaire

  • Historique / Caractéristiques

  • Installation / Début d ’un programme

  • Variables / Structures de contrôle

  • Contrôle spéciaux

  • Expressions Rationnelles

  • Gestion Fichiers

  • Appel système

  • Fonctions

  • Orienté Objet

  • Un exemple de CGI

  • Un exemple de socket


Historique l.jpg

Historique / Caractéristiques

Installation / Début d ’un programme

Variables / Structures de contrôle

Contrôle spéciaux

Expressions Rationnelles

Gestion Fichiers

Appel système / Fonctions

Orienté Objet

Exemples de CGI Socket

Historique

  • En 1987, 1ere version par Larry Wall.

  • Inspiré de Awk, sed, sh, C.

    • langage naturelle.

    • Il y a plus d’une façon de le faire.TIM-toady.

    • Perl rend le travail simple, facile et le travail difficile possible.

    • Le couteau suisse des chaînes.

  • Aujourd’hui Version 5.


Caract ristiques l.jpg

Historique / Caractéristiques

Installation / Début d ’un programme

Variables / Structures de contrôle

Contrôle spéciaux

Expressions Rationnelles

Gestion Fichiers

Appel système / Fonctions

Orienté Objet

Exemples de CGI Socket

Caractéristiques

  • Points positifs:

    • Rapide/efficace pour programmer

    • Grand nombre de possibilités

    • Portable

  • Points négatifs:

    • difficilement réutilisable

    • s’écrit en un unique fichier

    • Lent à l’exécution


Installation l.jpg

Historique / Caractéristiques

Installation / Début d ’un programme

Variables / Structures de contrôle

Contrôle spéciaux

Expressions Rationnelles

Gestion Fichiers

Appel système / Fonctions

Orienté Objet

Exemples de CGI Socket

Installation

  • Linux par défaut sur:

    • Debian version 2.1 RedHat version 6.0

    • Slackware version 2.5 SuSE version 6.0

  • Unix

    • par défaut sur: Aix 4.3.3. Solaris 8 IRIX

    • pour HPUX SCO : source (www.perl.com/CPAN-local/src/5.0/)

  • Macintosh

    • www.macperl.com

  • Windows 9x/NT

    www.activestate.com/download/ActivePerl/Windows/5.6/


D but d un programme l.jpg

Historique / Caractéristiques

Installation / Début d ’un programme

Variables / Structures de contrôle

Contrôle spéciaux

Expressions Rationnelles

Gestion Fichiers

Appel système / Fonctions

Orienté Objet

Exemples de CGI Socket

Début d ’un programme

  • Options de compilation:

    • #!usr/bin/Perl - w : warning

    • #!c:/Perl/bin/Perl - d : debug

  • Librairies comme #include

    • Use CGI;

      • CGI : librairie pour accès web

      • SQL : librairie pour accéder à une base SQL

      • Socket: égal socket.h


Variables l.jpg

Historique / Caractéristiques

Installation / Début d ’un programme

Variables / Structures de contrôle

Contrôle spéciaux

Expressions Rationnelles

Gestion Fichiers

Appel système / Fonctions

Orienté Objet

Exemples de CGI Socket

Variables

  • variable scalaire

    • $variable

      • $variable=« Hello World »;

      • $variable=25;

  • Tableau

    • @tab

      • $tab[0]: Valeur 0eme de @tab.

  • table de hashage.

    • %tabhash

      • %tabhash{$var}=@tab;


Structures de contr le l.jpg

Historique / Caractéristiques

Installation / Début d ’un programme

Variables / Structures de contrôle

Contrôle spéciaux

Expressions Rationnelles

Gestion Fichiers

Appel système / Fonctions

Orienté Objet

Exemples de CGI Socket

Structures de contrôle

  • Conditions

    • If ( expression ){}else{}

    • Unless ( expression ){}

    • $val=(expression ? truevalue : falsevalue);

  • boucles

    • do{}while/until (expression )

    • For{exp_initiale;test_exp;increm_exp }()

    • while(test_exp)()

    • foreach $i (@liste){}


Contr le sp ciaux l.jpg

Historique / Caractéristiques

Installation / Début d ’un programme

Variables / Structures de contrôle

Contrôle spéciaux

Expressions Rationnelles

Gestion Fichiers

Appel système / Fonctions

Orienté Objet

Exemples de CGI Socket

Contrôle spéciaux

  • last :

    • branchement après la boucle

      • While(exp 1){ if( exp2 ){ last; }} #saut last ici

  • next:

    • branchement en fin de boucle.

      • While(exp 1){ if( exp2 ){ next; } truc; #saut next ici}

  • redo:

    • branchement en début de boucle

      • While(exp 1){#saut redo ici truc;if( exp2 ){redo; }}


Expressions rationnelles l.jpg

Historique / Caractéristiques

Installation / Début d ’un programme

Variables / Structures de contrôle

Contrôle spéciaux

Expressions Rationnelles

Gestion Fichiers

Appel système / Fonctions

Orienté Objet

Exemples de CGI Socket

Expressions Rationnelles

  • Motifs

    . n ’importe quel lettre sauf \n.

    \s caractères espace [ \n\t\n\f] | inverse \S

    \w : caractères de mots [a-zA-Z0-9] | inverse \W

    \d : chiffres [0-9] | inverse \D

    /i : ignorer la case.

    [^ ...] : négation des caractères du crochet.

  • Ancrage

      ^  : correspond au début de ligne.


Expressions rationnelles bis l.jpg

Historique / Caractéristiques

Installation / Début d ’un programme

Variables / Structures de contrôle

Contrôle spéciaux

Expressions Rationnelles

Gestion Fichiers

Appel système / Fonctions

Orienté Objet

Exemples de CGI Socket

Expressions Rationnelles(bis)

  • Alternatif : "|" correspond à un ou.

  • Multiplicatif

    * , 0 ou n fois  + , 1 ou n fois ?, 0 ou 1 fois le

  • Utilisations

    • /pattern/option

      • if ( $a =~ /^bon/ i) vrai si $a commence par bon ou Bon

    • s/pattern/replace/option

      • $wi= ~ s/y/x/g : remplace toute les y dans wi par x.

    • Split

      • @tab= split(/:/,$v) : coupe la chaîne $v suivant le délimiteur « : » et le stocke dans tab.


Gestion fichiers l.jpg

Historique / Caractéristiques

Installation / Début d ’un programme

Variables / Structures de contrôle

Contrôle spéciaux

Expressions Rationnelles

Gestion Fichiers

Appel système / Fonctions

Orienté Objet

Exemples de CGI Socket

Gestion Fichiers

  • Descripteurs

    • STDIN entrée standard STDOUT sortie standard

  • Fonction open

    • open(FILEH, « monfichier »); mon fichier est ouvert en lecture.

    • open(FILEW, « >monfichier »); mon fichier est ouvert en écriture.

    • open(FILEW, « >>monfichier »); mon fichier est ouvert en écriture et créé en mode append.

  • Fonction close

    • close (DES); ferme le descripteur de fichier


Gestion fichiers13 l.jpg

Historique / Caractéristiques

Installation / Début d ’un programme

Variables / Structures de contrôle

Contrôle spéciaux

Expressions Rationnelles

Gestion Fichiers

Appel système / Fonctions

Orienté Objet

Exemples de CGI Socket

Gestion Fichiers

  • exemple: copie du fichier toto dans titi.

    print "Voulez vous copier toto dans titi:";

    if(<STDIN>=~ /(yes|oui)/i)

    {

    open(FILEW, ">>titi");

    open(FILER, "toto");

    while ($a=<FILER>)

    {print FILEW "ligne de toto $a";}

    close FILER;

    close FILEW;

    }


Appel syst me l.jpg

Historique / Caractéristiques

Installation / Début d ’un programme

Variables / Structures de contrôle

Contrôle spéciaux

Expressions Rationnelles

Gestion Fichiers

Appel système / Fonctions

Orienté Objet

Exemples de CGI Socket

Appel système

  • Exécution de programme

    • System(« programme »); sortie <STDIN>

    • `programme` sortie chaîne de caractère

    • open(DESCRI ,«|programme |»); entrée ou sortie pipe

  • Gestion de processus

    • fork(); exec();

    • wait(); waitpid();

  • exemple:

    #!/usr/bin/perl

    open(LPR,« |lpr »);

    @mywho=`who`;

    foreach $_ (@mywho){ print LPR $_; }

    close LPR;


Fonctions l.jpg

Historique / Caractéristiques

Installation / Début d ’un programme

Variables / Structures de contrôle

Contrôle spéciaux

Expressions Rationnelles

Gestion Fichiers

Appel système / Fonctions

Orienté Objet

Exemples de CGI Socket

Fonctions

  • Définition sous Fonctions

    • sub mafonction{

      $_[0]; # premier argument @_; # tableau d ’argument

      ...

      return $var; return $var1,var2; }

  • Appel Sous Fonction

    • $var / @tab = mafonction($first, $second);

    • &myfunc (@list);

  • Toutes les variables sont globales.

    • Contournement my($variable_locale);


  • Fonctions bis l.jpg

    Historique / Caractéristiques

    Installation / Début d ’un programme

    Variables / Structures de contrôle

    Contrôle spéciaux

    Expressions Rationnelles

    Gestion Fichiers

    Appel système / Fonctions

    Orienté Objet

    Exemples de CGI Socket

    Fonctions (bis)

    • exemple:

      • #!c:/perl/bin/perl -w

        $a=1; $b=2;

        $c=sum();

        print  " valeur de sum : $c \n valeur de a: $a \n";

        sub sum{

        my($a)=10;

        return $a+$b; }

    • Résultat:

      • valeur de sum : 12

      • valeur de a: 1


    Orient objet l.jpg

    Historique / Caractéristiques

    Installation / Début d ’un programme

    Variables / Structures de contrôle

    Contrôle spéciaux

    Expressions Rationnelles

    Gestion Fichiers

    Appel système / Fonctions

    Orienté Objet

    Exemples de CGI Socket

    Orienté Objet

    • Classe -> Package

    • Objet -> référence

      • exemple

        package Personne;

        my %champs=(nom=>undef,age=>undef,enfants=>undef);

        use Personne;

        $lui=new Personne;

        $lui->nom("Dupont");

        $lui->age(30);

        $lui->enfants(["lucie","pierre"];


    Le cgi l.jpg

    Historique / Caractéristiques

    Installation / Début d ’un programme

    Variables / Structures de contrôle

    Contrôle spéciaux

    Expressions Rationnelles

    Gestion Fichiers

    Appel système / Fonctions

    Orienté Objet

    Exemples de CGI Socket

    Le cgi

    • Header

      • header();<HEAD>

      • start_html(); <HTML>

      • h1('some','contents'); <H1>some contents</H1>

      • h1({-align=>left},'contents'); <H1ALIGN="LEFT">contents</H1>

    • Liste

      • radio_group(); <INPUT TYPE="radio">

      • popup_menu(); <SELECT NAME="toto" >

      • checkbox(); <INPUT TYPE="checkbox">

      • textarea(); <INPUT TYPE="text" >

    • scrolling_list( -name=> ’toto', -Values=>[England,France,] ,

      -Labels=>{England=>"EN",France=>"FR",} , -size=>1, -multiple=>0);

      <SELECT NAME="toto" SIZE=1> <OPTION VALUE="England">EN

      <OPTION VALUE="France">FR</SELECT>


    Un exemple cgi l.jpg

    Historique / Caractéristiques

    Installation / Début d ’un programme

    Variables / Structures de contrôle

    Contrôle spéciaux

    Expressions Rationnelles

    Gestion Fichiers

    Appel système / Fonctions

    Orienté Objet

    Exemples de CGI Socket

    Un exemple cgi

    • Print Hello world

      #!/usr/local/bin/perl

      use CGI; # load CGI routines

      $q = new CGI; # create new CGI object

      print $q->header, # create the HTTP header

      $q->start_html('hello world'),

      # start the HTML

      $q->h1('hello world'), # level 1 header

      $q->end_html; # end the HTML


    Un exemple cgi20 l.jpg

    Historique / Caractéristiques

    Installation / Début d ’un programme

    Variables / Structures de contrôle

    Contrôle spéciaux

    Expressions Rationnelles

    Gestion Fichiers

    Appel système / Fonctions

    Orienté Objet

    Exemples de CGI Socket

    Un exemple cgi

    #!C:\PERL\bin\perl.exe

    use CGI ':standard';

    $query = new CGI;

    print $query->header;

    print $query->start_html("Example CGI.pm Form");

    print $query->h1('A Simple Example');

    print $query-> start_form;

    print "What's your name? ";

    print $query-> textfield('name'),p;

    print "What's the combination?",p;

    print $query-> checkbox_group(-name=>'words',

    -values=>['key1','key2','key3','key4'],

    -defaults=>['key1','key3']);


    Un exemple cgi21 l.jpg

    Historique / Caractéristiques

    Installation / Début d ’un programme

    Variables / Structures de contrôle

    Contrôle spéciaux

    Expressions Rationnelles

    Gestion Fichiers

    Appel système / Fonctions

    Orienté Objet

    Exemples de CGI Socket

    Un exemple cgi

    print p,"What's your favorite color? ";

    print popup_menu(-name=>'color',

    -values=>['red','green','blue','chartreuse']),p;

    print $query->submit('Action','Send');

    print $query->endform;

    print hr;

    if (param()) {

    print "Your name is: ",em(param('name')),p,

    "The keywords are: ",em(join(", ",param('words'))),p,

    "Your favorite color is: ",em(param('color')),

    hr;

    }

    print a({href=>'../cgi_docs.html'},'Go to the documentation');

    print end_html;


    Un exemple de socket l.jpg

    Historique / Caractéristiques

    Installation / Début d ’un programme

    Variables / Structures de contrôle

    Contrôle spéciaux

    Expressions Rationnelles

    Gestion Fichiers

    Appel système / Fonctions

    Orienté Objet

    Exemples de CGI Socket

    Un exemple de socket

    • Librairie Socket

      • Tcp Client

        #!/usr/bin/perl -w

        use Socket;

        $remote='localhost';

        $port=8011;

        $iaddr=inet_aton($remote);

        $paddr=sockaddr_in($port,$iaddr);

        $proto=getprotobyname('tcp');

        socket(SOCK,PF_INET,SOCK_STREAM,$proto);

        connect(SOCK,$paddr);

        while($ligne=<SOCK>) { print $ligne; }

        close (SOCK);

        exit;


    Un exemple de socket23 l.jpg

    Historique / Caractéristiques

    Installation / Début d ’un programme

    Variables / Structures de contrôle

    Contrôle spéciaux

    Expressions Rationnelles

    Gestion Fichiers

    Appel système / Fonctions

    Orienté Objet

    Exemples de CGI Socket

    Un exemple de socket

    • TCP Serveur

      #!/usr/bin/perl -w

      use Socket;

      $port=8011;

      $proto=getprotobyname('tcp');

      socket(Serveur,PF_INET,SOCK_STREAM,$proto);

      setsockopt(Serveur,SOL_SOCKET,SO_REUSEADDR,pack("l",1));

      bind(Serveur,sockaddr_in($port,INADDR_ANY));

      listen(Serveur,SOMAXCONN);

      for(;$paddr=accept(Client,Serveur);close Client)

      { ($portc,$iaddrcl)=sockaddr_in($paddr);

      $nom=gethostbyaddr($iaddrcl,AF_INET);

      print Client "Salut $nom coucou\n"; }

      >>Salut localhost.localdomain coucou


    Conclusions l.jpg
    Conclusions

    « Perl permet

    La paresse

    L ’impatience

    et la démesure. »


    Bibliographie l.jpg
    Bibliographie

    • Introduction à Perl, RL.Schwartz & T.Christiansem, O ’reilly

    • Programming Perl,L.Walls & RL.Schwartz O ’reilly

    • Sites

      • « Picking up Perl » www.ebb.org

      • www.perl.org

      • www.activestate.com