Corso di introduzione a Perl, Bologna 2012

1,194 views

Published on

0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,194
On SlideShare
0
From Embeds
0
Number of Embeds
169
Actions
Shares
0
Downloads
21
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Corso di introduzione a Perl, Bologna 2012

  1. 1. Corso introduttivo a Perl Bologna, 10 Ottobre 2012giovedì 11 ottobre 2012
  2. 2. Corso introduttivo a Perl Stefano Rodighiero http://www.stefanorodighiero.net stefano.rodighiero@gmail.com @larsengiovedì 11 ottobre 2012
  3. 3. Cosa potete aspettarvi da questo corso Sapere scrivere dei semplici programmi Perl Sapere leggere programmi Perl Sapere dove trovare altra documentazionegiovedì 11 ottobre 2012
  4. 4. Corso introduttivo a Perl • Variabili • Riferimenti e strutture dati • Subroutine • I/O • Espressioni regolari • Moduli • OOP • CPANgiovedì 11 ottobre 2012
  5. 5. Perl ~1987, Larry Wallgiovedì 11 ottobre 2012
  6. 6. Perl 4.0 1991, Camel Bookgiovedì 11 ottobre 2012
  7. 7. Perl 5 1994, Perl come lo conosciamo oragiovedì 11 ottobre 2012
  8. 8. Perl 5.10 2008giovedì 11 ottobre 2012
  9. 9. Perl 5.16giovedì 11 ottobre 2012
  10. 10. Perl 6 “Quando arriva arriva”giovedì 11 ottobre 2012
  11. 11. Rakudogiovedì 11 ottobre 2012
  12. 12. Rakudo * 2010giovedì 11 ottobre 2012
  13. 13. Perlgiovedì 11 ottobre 2012
  14. 14. PERL Practical Extraction and Report Language Pathologically Eclectic Rubbish Lister Polymorphic Existential Recursive Lambdasgiovedì 11 ottobre 2012
  15. 15. Perl TIMTOWTDI Rendere facili le cose facili, possibili le cose difficili Simile ad un linguaggio naturalegiovedì 11 ottobre 2012
  16. 16. Procurarsi Perl Se usate un sistema *NIX, molto probabilmente lo avete già. Per Windows, ActiveState Perl, Strawberry Perl, oppure DWIM Perl (basato su Strawberry Perl).giovedì 11 ottobre 2012
  17. 17. Come cercare aiutogiovedì 11 ottobre 2012
  18. 18. perldocgiovedì 11 ottobre 2012
  19. 19. mongers@perl.itgiovedì 11 ottobre 2012
  20. 20. #perl.itgiovedì 11 ottobre 2012
  21. 21. www.perlmonks.orggiovedì 11 ottobre 2012
  22. 22. Bibliografia ::giovedì 11 ottobre 2012
  23. 23. Bibliografia :: Programming Perl Larry Wall et al. Oreilly, 2012giovedì 11 ottobre 2012
  24. 24. Bibliografia :: Modern Perl chromatic Onyx Neon, 2010 http://onyxneon.com/books/modern_perl/ In italiano: http://www.perl.it/documenti/modern_perl.htmlgiovedì 11 ottobre 2012
  25. 25. Bibliografia :: Pocket Perl Stefano Rodighiero Apogeo, 2008giovedì 11 ottobre 2012
  26. 26. Variabili ::giovedì 11 ottobre 2012
  27. 27. $giovedì 11 ottobre 2012
  28. 28. Scalari Un valore singolo Numeri e stringhe di caratterigiovedì 11 ottobre 2012
  29. 29. @giovedì 11 ottobre 2012
  30. 30. Array Un insieme ordinato di valori scalarigiovedì 11 ottobre 2012
  31. 31. %giovedì 11 ottobre 2012
  32. 32. Hash Un insieme (non ordinato) di coppie chiave-valore scalare Fondamentale!giovedì 11 ottobre 2012
  33. 33. Documentazione perldata perlopgiovedì 11 ottobre 2012
  34. 34.  Esercizi https://github.com/larsen/perl101giovedì 11 ottobre 2012
  35. 35. Riferimenti e strutture dati ::giovedì 11 ottobre 2012
  36. 36. Riferimenti e strutture dati :: Una questione in sospeso...giovedì 11 ottobre 2012
  37. 37. use feature say; # É esattamente equivalente a questo my @array = (1, 2, 3, 4, 5, 6); say $array[1]; # Come si fa allora un array di array? # Lo vediamo piu` tardi...giovedì 11 ottobre 2012
  38. 38. Uno scalare può contenere:giovedì 11 ottobre 2012
  39. 39. Un numero.giovedì 11 ottobre 2012
  40. 40. Una stringa.giovedì 11 ottobre 2012
  41. 41. Un riferimento ad unaltra variabile.giovedì 11 ottobre 2012
  42. 42. my @array = (1, 2, 3, 4, 5, 6);giovedì 11 ottobre 2012
  43. 43. my @array = ((1, 2, 3), (4, 5, 6));giovedì 11 ottobre 2012
  44. 44. my @array = ((1, 2, 3), (4, 5, 6)); @array 1 2 3 4 5 6giovedì 11 ottobre 2012
  45. 45. my @array = ((1, 2, 3), (4, 5, 6)); @array 1 • 2 3 4 5 6giovedì 11 ottobre 2012
  46. 46. my @array = ((1, 2, 3), (4, 5, 6)); @array 1 • 2 3 • 4 5 6giovedì 11 ottobre 2012
  47. 47. my @array = ([1, 2, 3], [4, 5, 6]); @array 1 • 2 3 • 4 5 6giovedì 11 ottobre 2012
  48. 48. my @array = ( {nome => "Pinco", cognome => "Pallino" }, {nome => "Lorenzo", cognome => "De Medici"} ); @array nome Pinco • cognome Pallino • nome Lorenzo cognome De Medicigiovedì 11 ottobre 2012
  49. 49. my @array = ( {nome => "Pinco", cognome => "Pallino" }, { nome => "Lorenzo", cognome => "De Medici", longevita => [1449, 1492] } ); @array nome Pinco • cognome Pallino • nome Lorenzo cognome De Medici 1449 longevità • 1492giovedì 11 ottobre 2012
  50. 50. my $nome = $array[0]->{nome}; @array nome Pinco • cognome Pallino • nome Lorenzo cognome De Medici 1449 longevità • 1492giovedì 11 ottobre 2012
  51. 51. my $anno_morte_ldm = $array[1]->{longevita}->[1]; @array nome Pinco • cognome Pallino • nome Lorenzo cognome De Medici 1449 longevità • 1492giovedì 11 ottobre 2012
  52. 52. Documentazione perlref perlreftut perldsc perllolgiovedì 11 ottobre 2012
  53. 53.  Esercizi https://github.com/larsen/perl101giovedì 11 ottobre 2012
  54. 54. Subroutine ::giovedì 11 ottobre 2012
  55. 55. Subroutine :: Codice riusabile (Dont repeat yourself: DRY) Strumento di astrazione Configurabilità del comportamentogiovedì 11 ottobre 2012
  56. 56. Documentazione perlsubgiovedì 11 ottobre 2012
  57. 57.  Esercizi https://github.com/larsen/perl101giovedì 11 ottobre 2012
  58. 58. Controllo del flusso ::giovedì 11 ottobre 2012
  59. 59. Esecuzione condizionale ::giovedì 11 ottobre 2012
  60. 60. if ... elsif ... elsegiovedì 11 ottobre 2012
  61. 61. if (EXPR) BLOCKgiovedì 11 ottobre 2012
  62. 62. ne, if (EXPR) BLOCK ssio e spre tata Un valu e v iene ch sto nte i n co ole ano. bogiovedì 11 ottobre 2012
  63. 63. ne, ssio Falso Un e spre e v iene valu tata ch sto 0 (il numero zero) nte i n co ano. (la stringa vuota) 0 (una stringa che contiene il singolo ole bo carattere corrispondente alla cifra zero) undefgiovedì 11 ottobre 2012
  64. 64. ne, ssio Vero Un e spre e v iene valu tata ch sto Tutto il resto nte i n co ole ano. bogiovedì 11 ottobre 2012
  65. 65. ne, if (EXPR) BLOCK ssio e spre tata Un valu e v iene ch sto nte i n co ole ano. bo Un in sieme istru di zioni, da gr delim affe. itategiovedì 11 ottobre 2012
  66. 66. if (EXPR) BLOCKgiovedì 11 ottobre 2012
  67. 67. if (EXPR) BLOCK else BLOCKgiovedì 11 ottobre 2012
  68. 68. if (EXPR) BLOCK elsif (EXPR) BLOCK else BLOCKgiovedì 11 ottobre 2012
  69. 69. if (EXPR) BLOCK elsif (EXPR) BLOCK else BLOCKgiovedì 11 ottobre 2012
  70. 70. given ... whengiovedì 11 ottobre 2012
  71. 71. Come switch e case in altri linguaggigiovedì 11 ottobre 2012
  72. 72. given (EXPR) { when (EXPR) BLOCK ... default BLOCK }giovedì 11 ottobre 2012
  73. 73. given (EXPR) { when (EXPR) BLOCK ... default BLOCK }giovedì 11 ottobre 2012
  74. 74. given (EXPR) { when (EXPR) BLOCK ... default BLOCK }giovedì 11 ottobre 2012
  75. 75. given (EXPR) { when (EXPR) BLOCK ... default BLOCK }giovedì 11 ottobre 2012
  76. 76. Modificatori di statement ::giovedì 11 ottobre 2012
  77. 77. ... if EXPR; ... unless EXPR; ... while EXPR; ... until EXPR; ... foreach EXPR;giovedì 11 ottobre 2012
  78. 78. Iterazione ::giovedì 11 ottobre 2012
  79. 79. for / foreachgiovedì 11 ottobre 2012
  80. 80. foreach (LIST) BLOCKgiovedì 11 ottobre 2012
  81. 81. foreach (LIST) BLOCKgiovedì 11 ottobre 2012
  82. 82. lori ei va lis ta d lare foreach (LIST) La i cic ual s ui q BLOCKgiovedì 11 ottobre 2012
  83. 83. lori ei va lis ta d lare foreach (LIST) La i cic ual s ui q BLOCK Un in sieme istru di zioni, da gr delim affe. itategiovedì 11 ottobre 2012
  84. 84. lori ei va lis ta d lare foreach (LIST) La i cic ual s ui q BLOCK Un in sieme istru di Allin zioni, terno da gr delim blocc del affe. itate o, il eleme singo nto è lo $_giovedì 11 ottobre 2012
  85. 85. foreach my $var (LIST) BLOCKgiovedì 11 ottobre 2012
  86. 86. Allinterno del blocco è tipico usare ulteriori istruzioni per il controllo di flussogiovedì 11 ottobre 2012
  87. 87. nextgiovedì 11 ottobre 2012
  88. 88. redogiovedì 11 ottobre 2012
  89. 89. lastgiovedì 11 ottobre 2012
  90. 90. whilegiovedì 11 ottobre 2012
  91. 91. while (EXPR) BLOCKgiovedì 11 ottobre 2012
  92. 92. one spr essi L e tat a in while (EXPR) valu viene BLOCK sto c onte ano b oolegiovedì 11 ottobre 2012
  93. 93. one spr essi L e tat a in while (EXPR) valu viene BLOCK sto c onte ano b oole Il bl occo esegu viene ito f condi inchè zione la è veragiovedì 11 ottobre 2012
  94. 94. map / grepgiovedì 11 ottobre 2012
  95. 95. map BLOCK LIST map EXPR, LISTgiovedì 11 ottobre 2012
  96. 96. map BLOCK LIST map EXPR, LISTgiovedì 11 ottobre 2012
  97. 97. map BLOCK LISTgiovedì 11 ottobre 2012
  98. 98. map BLOCK LIST n K per ciascu e BLOC ituisce Esegu , e rest d i LIST le mento ita dal e costitu uzione a lista unaltr na esec i ciascu risu ltato dgiovedì 11 ottobre 2012
  99. 99. map EXPR, LIST lemento scun e per cia Valut a EXPR naltra restit uisce u i di LI ST, e ltato d al risu t ituita d lis ta cos tazione na valu ciascugiovedì 11 ottobre 2012
  100. 100. grep BLOCK LIST grep EXPR, LISTgiovedì 11 ottobre 2012
  101. 101. grep BLOCK LIST grep EXPR, LIST n r ciascu K o E XPR pe e unaltra C Valu ta BLO es tituisc d i LI ST, e r di LIS T ele mento e lementi it ui ta dagli tuito un list a cost h a resti tazione i la valu per cu . valore verogiovedì 11 ottobre 2012
  102. 102. Documentazione perlsyngiovedì 11 ottobre 2012
  103. 103.  Esercizi https://github.com/larsen/perl101giovedì 11 ottobre 2012
  104. 104. I/O ::giovedì 11 ottobre 2012
  105. 105. Lettura da filegiovedì 11 ottobre 2012
  106. 106. open my $fh, "<", $filename;giovedì 11 ottobre 2012
  107. 107. open my $fh, "<", $filename; Il fil eh an dlegiovedì 11 ottobre 2012
  108. 108. open my $fh, "<", $filename; Il In fil eh ap ch an rir em dle ei od lf ali ile tà ?giovedì 11 ottobre 2012
  109. 109. open my $fh, "<", $filename; Il e fil fil In eh ap ch del an rir em dle ei od me lf ali ile tà no ?giovedì 11 ottobre 2012 Il
  110. 110. Modalità di aperturagiovedì 11 ottobre 2012
  111. 111. < Lettura > Scrittura >> Append +< Read/write +> Write/read (se il file esiste lo tronca)giovedì 11 ottobre 2012
  112. 112. my $line = <$fh>;giovedì 11 ottobre 2012
  113. 113. my $line = <>; ata, a ab brevi Form ST DIN leg ge dagiovedì 11 ottobre 2012
  114. 114. my $line = <DATA>; pec iale, For ma s dal legge ATA le D filehandgiovedì 11 ottobre 2012
  115. 115. close $fh;giovedì 11 ottobre 2012
  116. 116. Documentazione perlfunc (perldoc -f ...) perlopentutgiovedì 11 ottobre 2012
  117. 117.  Esercizi https://github.com/larsen/perl101giovedì 11 ottobre 2012
  118. 118. Espressioni regolari ::giovedì 11 ottobre 2012
  119. 119. Un linguaggio dentro il linguaggio.giovedì 11 ottobre 2012
  120. 120. Espressioni regolari Una maniera per esprimere insiemi di stringhe di caratteri Riconoscimento di formati Manipolazione del testogiovedì 11 ottobre 2012
  121. 121. /foo/giovedì 11 ottobre 2012
  122. 122. foogiovedì 11 ottobre 2012
  123. 123. foo bar foo bazgiovedì 11 ottobre 2012
  124. 124. foo foo baz bargiovedì 11 ottobre 2012
  125. 125. foo foo baz bargiovedì 11 ottobre 2012
  126. 126. bar foo baz foogiovedì 11 ottobre 2012
  127. 127. bar foo baz foogiovedì 11 ottobre 2012
  128. 128. bar foo baz foogiovedì 11 ottobre 2012
  129. 129. Documentazione perlre perlrerefgiovedì 11 ottobre 2012
  130. 130.  Esercizi https://github.com/larsen/perl101giovedì 11 ottobre 2012
  131. 131. Moduli ::giovedì 11 ottobre 2012
  132. 132. Insieme alle subroutine, ulteriore strumento di astrazionegiovedì 11 ottobre 2012
  133. 133. Documentazione perlmodgiovedì 11 ottobre 2012
  134. 134.  Esercizi https://github.com/larsen/perl101giovedì 11 ottobre 2012
  135. 135. Ulteriori cenni su strictgiovedì 11 ottobre 2012
  136. 136. Quando è che strict si lamenta per le variabili?giovedì 11 ottobre 2012
  137. 137. 1.giovedì 11 ottobre 2012
  138. 138. La variabile non è completamente qualificata.giovedì 11 ottobre 2012
  139. 139. 2.giovedì 11 ottobre 2012
  140. 140. Non è una variabile lessicale precedentemente definita.giovedì 11 ottobre 2012
  141. 141. 3.giovedì 11 ottobre 2012
  142. 142. Non è una variabile package precedentemente definita con use vars o con our.giovedì 11 ottobre 2012
  143. 143. OOP ::giovedì 11 ottobre 2012
  144. 144. Inizialmente non integrata nel linguaggio.giovedì 11 ottobre 2012
  145. 145. Perl 5 Oggetti (package, bless, ...)giovedì 11 ottobre 2012
  146. 146. 1. Una classe è un packagegiovedì 11 ottobre 2012
  147. 147. 2. Un metodo è una subroutinegiovedì 11 ottobre 2012
  148. 148. 3. Un oggetto è un riferimento blessedgiovedì 11 ottobre 2012
  149. 149. 2000 Damian Conway, «Object Oriented Perl» – Manninggiovedì 11 ottobre 2012
  150. 150. 2006 Moosegiovedì 11 ottobre 2012
  151. 151. Moose::giovedì 11 ottobre 2012
  152. 152. Modello analogo a quello di Perl 6giovedì 11 ottobre 2012
  153. 153. Implementato in Perl 5giovedì 11 ottobre 2012
  154. 154. Documentazione perlobj perlboot perltoot perltooc perlbotgiovedì 11 ottobre 2012
  155. 155.  Esercizi https://github.com/larsen/perl101giovedì 11 ottobre 2012
  156. 156. CPAN ::giovedì 11 ottobre 2012
  157. 157. search.cpan.orggiovedì 11 ottobre 2012
  158. 158. $ perl -MCPAN -e shellgiovedì 11 ottobre 2012
  159. 159. $ cpangiovedì 11 ottobre 2012
  160. 160. Qualche modulo utilegiovedì 11 ottobre 2012
  161. 161. DBIgiovedì 11 ottobre 2012
  162. 162. DBIx::Classgiovedì 11 ottobre 2012
  163. 163. Templategiovedì 11 ottobre 2012
  164. 164. Getopt::Longgiovedì 11 ottobre 2012
  165. 165. DateTimegiovedì 11 ottobre 2012
  166. 166. Regexp::Commongiovedì 11 ottobre 2012
  167. 167. HTML::Parser::*giovedì 11 ottobre 2012
  168. 168. XML::LibXMLgiovedì 11 ottobre 2012
  169. 169. Catalystgiovedì 11 ottobre 2012
  170. 170. Mojoliciousgiovedì 11 ottobre 2012
  171. 171. Dancergiovedì 11 ottobre 2012

×