SlideShare une entreprise Scribd logo
1  sur  24
Télécharger pour lire hors ligne
Re ad and Write File s
      w ith Pe rl




Pao lo Marc atili - Pro grammazio ne 08-09
Age nda

> Pe rl I
        O
> Ope n a File
> Write o n File s
> Re ad fro m File s
> While lo o p




                                                       2
          Pao lo Marc atili - Pro grammazio ne 08-09
Pe rl I
                   O

(I me ans I
 O        nput/Output)




Pao lo Marc atili - Pro grammazio ne 08-09
Why I
    O?

S inc e no w , Pe rl is

#! /us r/bin/pe rl -w

us e s tric t; <- ALWAYYYYYS S S S !!!
my $ s tring=quot;I lo ve to mato e s !nquot;;
fo r (my $ i=1 ;$ i<1 00;$ i++){
    print $ s tring;
}
                                                         4
            Pao lo Marc atili - Pro grammazio ne 08-09
Why I
    O?

But if w e w ant to do the s ame
w ith a us e r-s ubmitte d s tring?




                                                       5
          Pao lo Marc atili - Pro grammazio ne 08-09
Why I
    O?

But if w e w ant to do the s ame
w ith a us e r-s ubmitte d s tring?


I c an do this !
O




                                                       6
          Pao lo Marc atili - Pro grammazio ne 08-09
I type s
O

Main I nputs
> Ke ybo ard
> File
> Erro rs
Main o utputs
> Dis play
> File


                                                      7
         Pao lo Marc atili - Pro grammazio ne 08-09
Mo re than to mato e s

Le t’s try it:

#! /us r/bin/pe rl -w
                   us e s tric t; my
  $ s tring=<S T N>;fo r (my $ i=1 ;$ i<1 00;$ i+
                  DI
  +){print $ s tring;}



                                                         8
            Pao lo Marc atili - Pro grammazio ne 08-09
Ratio nale

Re ad fro m and w rite to diffe re nt me dia

S T N me ans s tandard input (ke ybo ard)
   DI
  ^
  this is a handle
<S MT me ans
     H>
“re ad fro m the s o urc e c o rre s po nding to handle SMTH”



                                                                9
             Pao lo Marc atili - Pro grammazio ne 08-09
Handle s

Handle s are jus t s tre ams “nic kname s ”
S o me o f the m are fixe d:
ST NDI       <-de fault is ke ybo ard
ST  DOUT <-de fault is dis play
ST  DERR <-de fault is dis play
S o me are us e r de fine d (file s )


                                                       10
          Pao lo Marc atili - Pro grammazio ne 08-09
Ope n/Write a file




Pao lo Marc atili - Pro grammazio ne 08-09
o pe n

We have to c re ate a handle fo r o ur file
o pe n(OUT “>o ut.txt”) o r die (“Erro r o pe ning o ut.txt: $ !”);
          ,
      ^
   N.B. : it’s us e r de fine d, yo u de c ide it
Tip
“<o ut.txt” <- re ad fro m o ut.txt
“>o ut.txt” <- w rite into o ut.txt
“>>o ut.txt” <- appe nd to o ut.txt

                                                                      12
               Pao lo Marc atili - Pro grammazio ne 08-09
c lo s e

Whe n finis he d w e have to c lo s e it:
c lo s e OUT;

I yo u do nt, Santa will bring no gift.
f




                                                           13
              Pao lo Marc atili - Pro grammazio ne 08-09
Print OUT

#! /us r/bin/pe rl -w
us e s tric t;
o pe n(OUT quot;>o ut.txtquot;) || die (quot;Erro r o pe ning o ut.txt: $ !quot;);
               ,
print quot;type yo ur c laim:nquot;;
my $ s tring=<ST N>;DI
fo r (my $ i=1 ;$ i<1 00;$ i++){
    print OUT $ s tring;
}
c lo s e OUT    ;

No w le t’s play w ith <,>,>> and file pe rmis s io ns
                                                                     14
               Pao lo Marc atili - Pro grammazio ne 08-09
Re ad fro m File s




Pao lo Marc atili - Pro grammazio ne 08-09
Re ad

o pe n(I “<s o ng.txt”) o r die (“Erro r o pe ning s o ng.txt: $ !”);
       N,
print <IN>;
print <IN>;
print <I
       N>;
print <I
       N>;
print <I
       N>;
print <I
       N>;
print <I
       N>;
print <I
       N>;
print <I
       N>;
print <I
       N>;
print <I
       N>;
print <I
       N>;
print <I
       N>;
print <I
       N>;

c lo s e I
         N;



                                                                        16
                  Pao lo Marc atili - Pro grammazio ne 08-09
Re ad w ith lo o ps

Pro ble ms :
> I lo ng
  t’s
> File s ize unkno w n

s o lutio n:
Us e lo o ps



                                                        17
           Pao lo Marc atili - Pro grammazio ne 08-09
While lo o p




Pao lo Marc atili - Pro grammazio ne 08-09
While


w hile (c o nditio n){
                  do s o me thing…

}




                                                       19
          Pao lo Marc atili - Pro grammazio ne 08-09
While - fo r diffe re nc e s

While                           Fo r

> Unde te rmine d               > De te rmine d
> No c o unte r                 > Co unte r




                                                      20
         Pao lo Marc atili - Pro grammazio ne 08-09
While e xample

Appro x. s o lutio n o f x^2-2=0

my $ e rr=1 ;
my $ s o l=0;
w hile ($ e rr>.1 ){
$ s o l+=.0001 ;
$ e rr=$ s o l**2-2;
}
                                                         21
            Pao lo Marc atili - Pro grammazio ne 08-09
Re ad w ith w hile

#! /us r/bin/pe rl -w

us e s tric t;
o pe n(MOD, quot;<I   G.pdbquot;) || die (quot;Erro r o pe ning
   IG.pdb: $ !quot;);

while (my $ line =<MOD>){
    print s ubs tr($ line ,0,6).quot;nquot;;
}
c lo s e MOD;


                                                             22
                Pao lo Marc atili - Pro grammazio ne 08-09
Re dire c t o utputs




Pao lo Marc atili - Pro grammazio ne 08-09
Re dire c tio ns

  #!/us r/bin/pe rl
  o pe n(ST DOUT quot;>fo o .o utquot;) || die quot;Can't re dire c t s tdo utquot;;
                    ,
  o pe n(ST DERR, quot;>& DOUT || die quot;Can't dup s tdo utquot;;
                      ST          quot;)

  s e le c t(STDERR); $ | = 1 ;          # make unbuffe re d
  s e le c t(STDOUT $ | = 1 ;
                   );                    # make unbuffe re d

  c lo s e (STDOUT);
  c lo s e (STDERR);



                                                                   24

Contenu connexe

Plus de Paolo Marcatili (9)

Regexp master 2011
Regexp master 2011Regexp master 2011
Regexp master 2011
 
Master perl io_2011
Master perl io_2011Master perl io_2011
Master perl io_2011
 
Master datatypes 2011
Master datatypes 2011Master datatypes 2011
Master datatypes 2011
 
Master unix 2011
Master unix 2011Master unix 2011
Master unix 2011
 
Machine Learning
Machine LearningMachine Learning
Machine Learning
 
Data Types Master
Data Types MasterData Types Master
Data Types Master
 
Hashes Master
Hashes MasterHashes Master
Hashes Master
 
Regexp Master
Regexp MasterRegexp Master
Regexp Master
 
Unix Master
Unix MasterUnix Master
Unix Master
 

Dernier

Bahare Shariat Jild 2 By SadurshSharia Mufti Amjad Ali Azmi
Bahare Shariat Jild 2 By SadurshSharia Mufti Amjad Ali AzmiBahare Shariat Jild 2 By SadurshSharia Mufti Amjad Ali Azmi
Bahare Shariat Jild 2 By SadurshSharia Mufti Amjad Ali Azmibookbahareshariat
 
محاضرات الاحصاء التطبيقي لطلاب علوم الرياضة.pdf
محاضرات الاحصاء التطبيقي لطلاب علوم الرياضة.pdfمحاضرات الاحصاء التطبيقي لطلاب علوم الرياضة.pdf
محاضرات الاحصاء التطبيقي لطلاب علوم الرياضة.pdfKhaled Elbattawy
 
Saunanaine_Helen Moppel_JUHENDATUD SAUNATEENUSE JA LOODUSMATKA SÜNERGIA_strat...
Saunanaine_Helen Moppel_JUHENDATUD SAUNATEENUSE JA LOODUSMATKA SÜNERGIA_strat...Saunanaine_Helen Moppel_JUHENDATUD SAUNATEENUSE JA LOODUSMATKA SÜNERGIA_strat...
Saunanaine_Helen Moppel_JUHENDATUD SAUNATEENUSE JA LOODUSMATKA SÜNERGIA_strat...Eesti Loodusturism
 
FAIL REKOD PENGAJARAN.pptx fail rekod pengajaran
FAIL REKOD PENGAJARAN.pptx fail rekod pengajaranFAIL REKOD PENGAJARAN.pptx fail rekod pengajaran
FAIL REKOD PENGAJARAN.pptx fail rekod pengajaransekolah233
 
Bahare Shariat Jild 4 By SadurshSharia Mufti Amjad Ali Azmi
Bahare Shariat Jild 4 By SadurshSharia Mufti Amjad Ali AzmiBahare Shariat Jild 4 By SadurshSharia Mufti Amjad Ali Azmi
Bahare Shariat Jild 4 By SadurshSharia Mufti Amjad Ali Azmibookbahareshariat
 
Bahare Shariat Jild 1 By SadurshSharia Mufti Amjad Ali Azmi
Bahare Shariat Jild 1 By SadurshSharia Mufti Amjad Ali AzmiBahare Shariat Jild 1 By SadurshSharia Mufti Amjad Ali Azmi
Bahare Shariat Jild 1 By SadurshSharia Mufti Amjad Ali Azmibookbahareshariat
 
Bahare Shariat Jild 3 By SadurshSharia Mufti Amjad Ali Azmi
Bahare Shariat Jild 3 By SadurshSharia Mufti Amjad Ali AzmiBahare Shariat Jild 3 By SadurshSharia Mufti Amjad Ali Azmi
Bahare Shariat Jild 3 By SadurshSharia Mufti Amjad Ali Azmibookbahareshariat
 

Dernier (8)

Bahare Shariat Jild 2 By SadurshSharia Mufti Amjad Ali Azmi
Bahare Shariat Jild 2 By SadurshSharia Mufti Amjad Ali AzmiBahare Shariat Jild 2 By SadurshSharia Mufti Amjad Ali Azmi
Bahare Shariat Jild 2 By SadurshSharia Mufti Amjad Ali Azmi
 
محاضرات الاحصاء التطبيقي لطلاب علوم الرياضة.pdf
محاضرات الاحصاء التطبيقي لطلاب علوم الرياضة.pdfمحاضرات الاحصاء التطبيقي لطلاب علوم الرياضة.pdf
محاضرات الاحصاء التطبيقي لطلاب علوم الرياضة.pdf
 
Energy drink .
Energy drink                           .Energy drink                           .
Energy drink .
 
Saunanaine_Helen Moppel_JUHENDATUD SAUNATEENUSE JA LOODUSMATKA SÜNERGIA_strat...
Saunanaine_Helen Moppel_JUHENDATUD SAUNATEENUSE JA LOODUSMATKA SÜNERGIA_strat...Saunanaine_Helen Moppel_JUHENDATUD SAUNATEENUSE JA LOODUSMATKA SÜNERGIA_strat...
Saunanaine_Helen Moppel_JUHENDATUD SAUNATEENUSE JA LOODUSMATKA SÜNERGIA_strat...
 
FAIL REKOD PENGAJARAN.pptx fail rekod pengajaran
FAIL REKOD PENGAJARAN.pptx fail rekod pengajaranFAIL REKOD PENGAJARAN.pptx fail rekod pengajaran
FAIL REKOD PENGAJARAN.pptx fail rekod pengajaran
 
Bahare Shariat Jild 4 By SadurshSharia Mufti Amjad Ali Azmi
Bahare Shariat Jild 4 By SadurshSharia Mufti Amjad Ali AzmiBahare Shariat Jild 4 By SadurshSharia Mufti Amjad Ali Azmi
Bahare Shariat Jild 4 By SadurshSharia Mufti Amjad Ali Azmi
 
Bahare Shariat Jild 1 By SadurshSharia Mufti Amjad Ali Azmi
Bahare Shariat Jild 1 By SadurshSharia Mufti Amjad Ali AzmiBahare Shariat Jild 1 By SadurshSharia Mufti Amjad Ali Azmi
Bahare Shariat Jild 1 By SadurshSharia Mufti Amjad Ali Azmi
 
Bahare Shariat Jild 3 By SadurshSharia Mufti Amjad Ali Azmi
Bahare Shariat Jild 3 By SadurshSharia Mufti Amjad Ali AzmiBahare Shariat Jild 3 By SadurshSharia Mufti Amjad Ali Azmi
Bahare Shariat Jild 3 By SadurshSharia Mufti Amjad Ali Azmi
 

Perl Io Master

  • 1. Re ad and Write File s w ith Pe rl Pao lo Marc atili - Pro grammazio ne 08-09
  • 2. Age nda > Pe rl I O > Ope n a File > Write o n File s > Re ad fro m File s > While lo o p 2 Pao lo Marc atili - Pro grammazio ne 08-09
  • 3. Pe rl I O (I me ans I O nput/Output) Pao lo Marc atili - Pro grammazio ne 08-09
  • 4. Why I O? S inc e no w , Pe rl is #! /us r/bin/pe rl -w us e s tric t; <- ALWAYYYYYS S S S !!! my $ s tring=quot;I lo ve to mato e s !nquot;; fo r (my $ i=1 ;$ i<1 00;$ i++){ print $ s tring; } 4 Pao lo Marc atili - Pro grammazio ne 08-09
  • 5. Why I O? But if w e w ant to do the s ame w ith a us e r-s ubmitte d s tring? 5 Pao lo Marc atili - Pro grammazio ne 08-09
  • 6. Why I O? But if w e w ant to do the s ame w ith a us e r-s ubmitte d s tring? I c an do this ! O 6 Pao lo Marc atili - Pro grammazio ne 08-09
  • 7. I type s O Main I nputs > Ke ybo ard > File > Erro rs Main o utputs > Dis play > File 7 Pao lo Marc atili - Pro grammazio ne 08-09
  • 8. Mo re than to mato e s Le t’s try it: #! /us r/bin/pe rl -w us e s tric t; my $ s tring=<S T N>;fo r (my $ i=1 ;$ i<1 00;$ i+ DI +){print $ s tring;} 8 Pao lo Marc atili - Pro grammazio ne 08-09
  • 9. Ratio nale Re ad fro m and w rite to diffe re nt me dia S T N me ans s tandard input (ke ybo ard) DI ^ this is a handle <S MT me ans H> “re ad fro m the s o urc e c o rre s po nding to handle SMTH” 9 Pao lo Marc atili - Pro grammazio ne 08-09
  • 10. Handle s Handle s are jus t s tre ams “nic kname s ” S o me o f the m are fixe d: ST NDI <-de fault is ke ybo ard ST DOUT <-de fault is dis play ST DERR <-de fault is dis play S o me are us e r de fine d (file s ) 10 Pao lo Marc atili - Pro grammazio ne 08-09
  • 11. Ope n/Write a file Pao lo Marc atili - Pro grammazio ne 08-09
  • 12. o pe n We have to c re ate a handle fo r o ur file o pe n(OUT “>o ut.txt”) o r die (“Erro r o pe ning o ut.txt: $ !”); , ^ N.B. : it’s us e r de fine d, yo u de c ide it Tip “<o ut.txt” <- re ad fro m o ut.txt “>o ut.txt” <- w rite into o ut.txt “>>o ut.txt” <- appe nd to o ut.txt 12 Pao lo Marc atili - Pro grammazio ne 08-09
  • 13. c lo s e Whe n finis he d w e have to c lo s e it: c lo s e OUT; I yo u do nt, Santa will bring no gift. f 13 Pao lo Marc atili - Pro grammazio ne 08-09
  • 14. Print OUT #! /us r/bin/pe rl -w us e s tric t; o pe n(OUT quot;>o ut.txtquot;) || die (quot;Erro r o pe ning o ut.txt: $ !quot;); , print quot;type yo ur c laim:nquot;; my $ s tring=<ST N>;DI fo r (my $ i=1 ;$ i<1 00;$ i++){ print OUT $ s tring; } c lo s e OUT ; No w le t’s play w ith <,>,>> and file pe rmis s io ns 14 Pao lo Marc atili - Pro grammazio ne 08-09
  • 15. Re ad fro m File s Pao lo Marc atili - Pro grammazio ne 08-09
  • 16. Re ad o pe n(I “<s o ng.txt”) o r die (“Erro r o pe ning s o ng.txt: $ !”); N, print <IN>; print <IN>; print <I N>; print <I N>; print <I N>; print <I N>; print <I N>; print <I N>; print <I N>; print <I N>; print <I N>; print <I N>; print <I N>; print <I N>; c lo s e I N; 16 Pao lo Marc atili - Pro grammazio ne 08-09
  • 17. Re ad w ith lo o ps Pro ble ms : > I lo ng t’s > File s ize unkno w n s o lutio n: Us e lo o ps 17 Pao lo Marc atili - Pro grammazio ne 08-09
  • 18. While lo o p Pao lo Marc atili - Pro grammazio ne 08-09
  • 19. While w hile (c o nditio n){ do s o me thing… } 19 Pao lo Marc atili - Pro grammazio ne 08-09
  • 20. While - fo r diffe re nc e s While Fo r > Unde te rmine d > De te rmine d > No c o unte r > Co unte r 20 Pao lo Marc atili - Pro grammazio ne 08-09
  • 21. While e xample Appro x. s o lutio n o f x^2-2=0 my $ e rr=1 ; my $ s o l=0; w hile ($ e rr>.1 ){ $ s o l+=.0001 ; $ e rr=$ s o l**2-2; } 21 Pao lo Marc atili - Pro grammazio ne 08-09
  • 22. Re ad w ith w hile #! /us r/bin/pe rl -w us e s tric t; o pe n(MOD, quot;<I G.pdbquot;) || die (quot;Erro r o pe ning IG.pdb: $ !quot;); while (my $ line =<MOD>){ print s ubs tr($ line ,0,6).quot;nquot;; } c lo s e MOD; 22 Pao lo Marc atili - Pro grammazio ne 08-09
  • 23. Re dire c t o utputs Pao lo Marc atili - Pro grammazio ne 08-09
  • 24. Re dire c tio ns #!/us r/bin/pe rl o pe n(ST DOUT quot;>fo o .o utquot;) || die quot;Can't re dire c t s tdo utquot;; , o pe n(ST DERR, quot;>& DOUT || die quot;Can't dup s tdo utquot;; ST quot;) s e le c t(STDERR); $ | = 1 ; # make unbuffe re d s e le c t(STDOUT $ | = 1 ; ); # make unbuffe re d c lo s e (STDOUT); c lo s e (STDERR); 24