1 / 25

Magali Sauvergeat

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

nemo
Download Presentation

Magali Sauvergeat

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. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Introduction à Perl(Pratical Extraction and Report language)(pathologically Eclectic Rubbish Lister) Magali Sauvergeat

  2. 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

  3. 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.

  4. 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

  5. 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/

  6. 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

  7. 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;

  8. 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){}

  9. 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; }}

  10. 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.

  11. 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.

  12. 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

  13. 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; }

  14. 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;

  15. 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);

  16. 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

  17. 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"];

  18. 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>

  19. 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

  20. 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']);

  21. 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;

  22. 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;

  23. 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

  24. Conclusions « Perl permet La paresse L ’impatience et la démesure. »

  25. 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

More Related