Title: Introduction
1Introduction à Perl(Pratical Extraction and
Report language)(pathologically Eclectic Rubbish
Lister)
2Sommaire
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 / 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
3Historique
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
- En 1987, 1ere version par Larry Wall.
- Inspiré de Awk, sed, sh, C.
- langage naturelle.
- Il y a plus dune façon de le faire.TIM-toady.
- Perl rend le travail simple, facile et le travail
difficile possible. - Le couteau suisse des chaînes.
- Aujourdhui Version 5.
4Caractéristiques
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
- 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 à lexécution
5Installation
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
- 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/
6Début d un programme
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
- 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
7Variables
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
- variable scalaire
- variable
- variable Hello World
- variable25
- Tableau
- _at_tab
- tab0 Valeur 0eme de _at_tab.
- table de hashage.
- tabhash
- tabhashvar_at_tab
8Structures de contrôle
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
- Conditions
- If ( expression )else
- Unless ( expression )
- val(expression ? truevalue falsevalue)
- boucles
- dowhile/until (expression )
- Forexp_initialetest_expincrem_exp ()
- while(test_exp)()
- foreach i (_at_liste)
9Contrôle spéciaux
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
- 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 trucif( exp2
)redo
10Expressions Rationnelles
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
- 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.
11Expressions Rationnelles(bis)
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
- 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
- _at_tab split(//,v) coupe la chaîne v suivant
le délimiteur et le stocke dans tab.
12Gestion Fichiers
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
- Descripteurs
- STDIN entrée standard STDOUT sortie standard
- Fonction open
- open(FILEH, monfichier ) mon fichier est
ouvert en lecture. - open(FILEW, gtmonfichier ) mon fichier est
ouvert en écriture. - open(FILEW, gtgtmonfichier ) mon fichier est
ouvert en écriture et créé en mode append. - Fonction close
- close (DES) ferme le descripteur de fichier
13Gestion Fichiers
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
- exemple copie du fichier toto dans titi.
- print "Voulez vous copier toto dans titi"
- if(ltSTDINgt /(yesoui)/i)
-
- open(FILEW, "gtgttiti")
- open(FILER, "toto")
- while (altFILERgt)
- print FILEW "ligne de toto a"
- close FILER
- close FILEW
14Appel système
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
- Exécution de programme
- System( programme ) sortie ltSTDINgt
- 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 )
- _at_mywhowho
- foreach _ (_at_mywho) print LPR _
- close LPR
15Fonctions
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éfinition sous Fonctions
- sub mafonction
- _0 premier argument _at__ tableau
d argument - ...
- return var return var1,var2
- Appel Sous Fonction
- var / _at_tab mafonction(first, second)
- myfunc (_at_list)
- Toutes les variables sont globales.
- Contournement my(variable_locale)
16Fonctions (bis)
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
- exemple
- !c/perl/bin/perl -w
- a1 b2
- csum()
- print " valeur de sum c \n valeur de a a
\n" - sub sum
- my(a)10
- return ab
- Résultat
- valeur de sum 12
- valeur de a 1
17Orienté Objet
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
- Classe -gt Package
- Objet -gt référence
- exemple
- package Personne
- my champs(nomgtundef,agegtundef,enfantsgtundef
) - use Personne
- luinew Personne
- lui-gtnom("Dupont")
- lui-gtage(30)
- lui-gtenfants("lucie","pierre"
18Le cgi
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
- Header
- header() ltHEADgt
- start_html() ltHTMLgt
- h1('some','contents') ltH1gtsome contentslt/H1gt
- h1(-aligngtleft,'contents')
ltH1ALIGN"LEFT"gtcontentslt/H1gt - Liste
- radio_group() ltINPUT TYPE"radio"gt
- popup_menu() ltSELECT NAME"toto" gt
- checkbox() ltINPUT TYPE"checkbox"gt
- textarea() ltINPUT TYPE"text" gt
- scrolling_list( -namegt toto',
-ValuesgtEngland,France, , - -LabelsgtEnglandgt"EN",Francegt"FR", ,
-sizegt1, -multiplegt0) - ltSELECT NAME"toto" SIZE1gt ltOPTION
VALUE"England"gtEN - ltOPTION VALUE"France"gtFRlt/SELECTgt
19Un exemple cgi
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
- Print Hello world
- !/usr/local/bin/perl
- use CGI load CGI routines
- q new CGI create new CGI object
- print q-gtheader, create the HTTP header
- q-gtstart_html('hello world'),
- start the HTML
- q-gth1('hello world'), level 1 header
- q-gtend_html end the HTML
20Un exemple cgi
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
- !C\PERL\bin\perl.exe
- use CGI 'standard'
- query new CGI
- print query-gtheader
- print query-gtstart_html("Example CGI.pm Form")
- print query-gth1('A Simple Example')
- print query-gt start_form
- print "What's your name? "
- print query-gt textfield('name'),p
- print "What's the combination?",p
- print query-gt checkbox_group(-namegt'words',
- -valuesgt'key1','key2','key3','key4',
- -defaultsgt'key1','key3')
21Un exemple cgi
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
- print p,"What's your favorite color? "
- print popup_menu(-namegt'color',
- -valuesgt'red','green','blue','chartreuse'),
p - print query-gtsubmit('Action','Send')
- print query-gtendform
- 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(hrefgt'../cgi_docs.html','Go to the
documentation') - print end_html
22Un 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
- Librairie Socket
- Tcp Client
- !/usr/bin/perl -w
- use Socket
- remote'localhost'
- port8011
- iaddrinet_aton(remote)
- paddrsockaddr_in(port,iaddr)
- protogetprotobyname('tcp')
- socket(SOCK,PF_INET,SOCK_STREAM,proto)
- connect(SOCK,paddr)
- while(ligneltSOCKgt) print ligne
- close (SOCK)
- exit
23Un 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
- TCP Serveur
- !/usr/bin/perl -w
- use Socket
- port8011
- protogetprotobyname('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(paddraccept(Client,Serveur)close Client)
- (portc,iaddrcl)sockaddr_in(paddr)
- nomgethostbyaddr(iaddrcl,AF_INET)
- print Client "Salut nom coucou\n"
- gtgtSalut localhost.localdomain coucou
24Conclusions
- Perl permet
- La paresse
- L impatience
- et la démesure.
25Bibliographie
- 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