Introduction à Perl(Pratical Extraction and Report language) (pathologically Eclectic Rubbish Lister) Mohamed Bouhamed
Sommaire Historique / Caractéristiques Installation / Début d’un programme Variables / Structures de contrôle Contrôle...
Historique En 1987, 1ereversion par Larry Wall. Inspiré de Awk, sed, sh, C. langage naturelle. Il y a plus d’une façon...
Caractéristiques Points positifs: Rapide/efficace pour programmer Grand nombre de possibilités Portable Points négati...
Installation 
Linux par défaut sur: 
Debian version 2.1 RedHat version 6.0 
Slackware version 2.5SuSE version 6.0 
Uni...
Début d’un programme Options de compilation: #!usr/bin/Perl -w : warning #!c:/Perl/bin/Perl-d : debug Librairies comme...
Variables variable scalaire $variable $variable=«Hello World»; $variable=25; Tableau @tab $tab[0]: Valeur 0emede @t...
Structures de contrôle Conditions If ( expression ){}else{} Unless ( expression ){} $val=(expression ? truevalue : fal...
Contrôle spéciaux last : branchement après la boucle While(exp 1){ if( exp2 ){ last;}} #saut last ici next: brancheme...
Expressions Rationnelles 
Motifs 
.n’importe quel lettre sauf n. 
s caractères espace [ ntnf]| inverse S 
w : caractères ...
Expressions Rationnelles(bis) Alternatif : "|"correspond à un ou. Multiplicatif*,0 ou n fois +,1 ou n fois ?,0 ou 1 fois...
Gestion Fichiers Descripteurs STDIN entrée standardSTDOUT sortie standard Fonction open open(FILEH,«monfichier»); mon ...
Gestion Fichiers exemple:copie du fichier toto dans titi. print "Voulez vous copier toto dans titi:"; if(<STDIN>=~ /(yes|...
Appel système Exécution de programme System(«programme»);sortie <STDIN> `programme`sortie chaîne de caractère open(DES...
Fonctions 
Définition sous Fonctions sub mafonction{ $_[0]; # premier argument@_; # tableau d’argument... return $var; r...
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"; su...
Orienté Objet 
Classe -> Package 
Objet -> référence 
exemplepackage Personne; my %champs=(nom=>undef,age=>undef,enfant...
Le cgi 
Header 
header();<HEAD> start_html(); <HTML> 
h1('some','contents'); <H1>some contents</H1> 
h1({-align=>left...
Un exemple cgi 
Print Hello world 
#!/usr/local/bin/perl 
use CGI; # load CGI routines 
$q = new CGI; # create new CGI ob...
Un exemple cgi#!C:PERLbinperl.exeuse CGI ':standard'; $query = new CGI; print$query->header; print$query->start_html("Exam...
Un exemple cgiprintp,"What's your favorite color? "; printpopup_menu(-name=>'color', -values=>['red','green','blue','chart...
Un exemple de socket Librairie Socket Tcp Client#!/usr/bin/perl -wuse Socket; $remote='localhost'; $port=8011; $iaddr=in...
Un exemple de socket TCP Serveur#!/usr/bin/perl -wuse Socket; $port=8011; $proto=getprotobyname('tcp'); socket(Serveur,PF...
Conclusions «Perl permetLa paresseL’impatienceet la démesure.»
Bibliographie Introduction à Perl, RL.Schwartz & T.Christiansem, O’reilly Programming Perl,L.Walls & RL.Schwartz O’reill...
Prochain SlideShare
Chargement dans…5
×

Per lameliorer

383 vues

Publié le

A perl programmer has to develop scripts using perl languages. Scripts are usually required in web applications or applications that are run on the internet. A perl programmer needs to have strong communication skills and knowledge of other programming languages, but most importantly Java programming language.

Publié dans : Ingénierie
0 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
383
Sur SlideShare
0
Issues des intégrations
0
Intégrations
4
Actions
Partages
0
Téléchargements
7
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Per lameliorer

  1. 1. Introduction à Perl(Pratical Extraction and Report language) (pathologically Eclectic Rubbish Lister) Mohamed Bouhamed
  2. 2. 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 / 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
  3. 3. Historique En 1987, 1ereversion 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. 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
  4. 4. 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 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
  5. 5. Installation Linux par défaut sur: Debian version 2.1 RedHat version 6.0 Slackware version 2.5SuSE 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/ 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
  6. 6. 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 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
  7. 7. Variables variable scalaire $variable $variable=«Hello World»; $variable=25; Tableau @tab $tab[0]: Valeur 0emede @tab. table de hashage. %tabhash %tabhash{$var}=@tab; 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
  8. 8. 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){} 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
  9. 9. 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 redoici truc;if( exp2 ){redo;}} 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
  10. 10. Expressions Rationnelles Motifs .n’importe quel lettre sauf n. s caractères espace [ ntnf]| 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. 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
  11. 11. 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. 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
  12. 12. Gestion Fichiers Descripteurs STDIN entrée standardSTDOUT 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 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
  13. 13. 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; } 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
  14. 14. 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/perlopen(LPR,«|lpr»); @mywho=`who`; foreach $_ (@mywho){ print LPR $_; } close LPR; 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
  15. 15. 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. Contournementmy($variable_locale); 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
  16. 16. 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 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
  17. 17. Orienté Objet Classe -> Package Objet -> référence exemplepackage Personne; my %champs=(nom=>undef,age=>undef,enfants=>undef); use Personne; $lui=new Personne; $lui->nom("Dupont"); $lui->age(30); $lui->enfants(["lucie","pierre"]; 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
  18. 18. 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> 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
  19. 19. 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 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
  20. 20. Un exemple cgi#!C:PERLbinperl.exeuse 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']); 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
  21. 21. Un exemple cgiprintp,"What's your favorite color? "; printpopup_menu(-name=>'color', -values=>['red','green','blue','chartreuse']),p; print$query->submit('Action','Send'); print$query->endform; printhr; 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; } printa({href=>'../cgi_docs.html'},'Go to the documentation'); printend_html; 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
  22. 22. Un exemple de socket Librairie Socket Tcp Client#!/usr/bin/perl -wuse 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; 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
  23. 23. Un exemple de socket TCP Serveur#!/usr/bin/perl -wuse 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 coucoun"; } >>Salut localhost.localdomain coucou 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
  24. 24. Conclusions «Perl permetLa paresseL’impatienceet la démesure.»
  25. 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

×