Perl101

986 views
948 views

Published on

http://www.stefanorodighiero.net/perl101
Corso introduttivo al Perl, presentato durante l'Italian Perl Workshop 2009

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
986
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
16
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Perl101

  1. 1. Corso introduttivo a Perl Pisa, 22 Ottobre 2009
  2. 2. Corso introduttivo a Perl Stefano Rodighiero http://www.stefanorodighiero.net stefano.rodighiero@gmail.com Twitter: @larsen
  3. 3. Cosa potete aspettarvi da questo corso Sapere scrivere dei semplici programmi Perl Sapere leggere programmi Perl Sapere dove trovare altra documentazione
  4. 4. Corso introduttivo a Perl •Variabili •Riferimenti e strutture dati •Subroutine •I/O •Espressioni regolari •Moduli •CPAN
  5. 5. Perl ~1987, Larry Wall
  6. 6. Perl 4.0 1991, Camel Book
  7. 7. Perl 5 1994, Perl come lo conosciamo ora
  8. 8. Perl 5.10
  9. 9. Perl 5.11
  10. 10. Perl 5.11 5.11.1 l'altro ieri!
  11. 11. Perl 6 ???
  12. 12. Rakudo
  13. 13. Rakudo * ~ Primavera 2010
  14. 14. Perl
  15. 15. PERL Practical Extraction and Report Language Pathologically Eclectic Rubbish Lister Polymorphic Existential Recursive Lambdas
  16. 16. perl
  17. 17. Perl TIMTOWTDI Rendere facili le cose facili, possibili le cose difficili Simile ad un linguaggio naturale
  18. 18. Procurarsi Perl Se usate un sistema *NIX, molto probabilmente lo avete già Per Windows, ActiveState Perl oppure Strawberry Perl
  19. 19. Come cercare aiuto
  20. 20. perldoc
  21. 21. mongers@perl.it
  22. 22. #perl.it
  23. 23. www.perlmonks.org
  24. 24. Variabili ::
  25. 25. $
  26. 26. Scalari Un valore singolo Numeri e stringhe di caratteri
  27. 27.  Esercizi http://www.stefanorodighiero.net/perl101/examples.tgz
  28. 28. @
  29. 29. Array Un insieme ordinato di valori scalari
  30. 30.  Esercizi http://www.stefanorodighiero.net/perl101/examples.tgz
  31. 31. %
  32. 32. Hash Un insieme (non ordinato) di coppie chiave-valore scalare Fondamentale!
  33. 33.  Esercizi http://www.stefanorodighiero.net/perl101/examples.tgz
  34. 34. Riferimenti e strutture dati ::
  35. 35. Riferimenti e strutture dati :: Una questione in sospeso...
  36. 36. Riferimenti e strutture dati :: Una questione in sospeso...
  37. 37. use feature 'say'; # E` 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...
  38. 38. Uno scalare può contenere:
  39. 39. Un numero.
  40. 40. Una stringa.
  41. 41. Un riferimento ad un'altra variabile.
  42. 42. my @array = (1, 2, 3, 4, 5, 6);
  43. 43. my @array = ((1, 2, 3), (4, 5, 6));
  44. 44. my @array = ((1, 2, 3), (4, 5, 6)); @array 1 2 3 4 5 6
  45. 45. my @array = ((1, 2, 3), (4, 5, 6)); @array 1 • 2 3 4 5 6
  46. 46. my @array = ((1, 2, 3), (4, 5, 6)); @array 1 • 2 3 • 4 5 6
  47. 47. my @array = ([1, 2, 3], [4, 5, 6]); @array 1 • 2 3 • 4 5 6
  48. 48.  Esercizi http://www.stefanorodighiero.net/perl101/examples.tgz
  49. 49. Subroutine ::
  50. 50. Subroutine :: Codice riusabile (Don't repeat yourself: DRY) Strumento di astrazione Configurabilità del comportamento
  51. 51.  Esercizi http://www.stefanorodighiero.net/perl101/examples.tgz
  52. 52. Controllo del flusso ::
  53. 53. Esecuzione condizionale ::
  54. 54. if ... elsif ... else
  55. 55. if (EXPR) BLOCK
  56. 56. ne, if (EXPR) BLOCK ssio e spre tata Un' valu e v iene ch sto nte i n co ole ano. bo
  57. 57. 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) undef
  58. 58. ne, ssio Vero Un' e spre e v iene valu tata ch sto Tutto il resto nte i n co ole ano. bo
  59. 59. 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. itate
  60. 60. if (EXPR) BLOCK
  61. 61. if (EXPR) BLOCK else BLOCK
  62. 62. if (EXPR) BLOCK elsif (EXPR) BLOCK else BLOCK
  63. 63. if (EXPR) BLOCK elsif (EXPR) BLOCK else BLOCK
  64. 64. given ... when
  65. 65. Come switch e case in altri linguaggi
  66. 66. given (EXPR) { when (EXPR) BLOCK ... default BLOCK }
  67. 67. given (EXPR) { when (EXPR) BLOCK ... default BLOCK }
  68. 68. given (EXPR) { when (EXPR) BLOCK ... default BLOCK }
  69. 69. given (EXPR) { when (EXPR) BLOCK ... default BLOCK }
  70. 70. Modificatori di statement ::
  71. 71. ... if EXPR; ... unless EXPR; ... while EXPR; ... until EXPR; ... foreach EXPR;
  72. 72. Iterazione ::
  73. 73. for / foreach
  74. 74. foreach (LIST) BLOCK
  75. 75. foreach (LIST) BLOCK
  76. 76. lori ei va lis ta d lare foreach (LIST) La i cic ual s ui q BLOCK
  77. 77. 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. itate
  78. 78. lori ei va lis ta d lare foreach (LIST) La i cic ual s ui q BLOCK Un in sieme istru di All'in zioni, terno da gr delim blocc del affe. itate o, il eleme singo nto è lo $_
  79. 79. foreach my $var (LIST) BLOCK
  80. 80. All'interno del blocco è tipico usare ulteriori istruzioni per il controllo di flusso
  81. 81. next
  82. 82. redo
  83. 83. last
  84. 84. while
  85. 85. while (EXPR) BLOCK
  86. 86. one spr essi L 'e tat a in while (EXPR) valu viene BLOCK sto c onte ano b oole
  87. 87. 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 è vera
  88. 88.  Esercizi http://www.stefanorodighiero.net/perl101/examples.tgz
  89. 89. I/O ::
  90. 90. Lettura da file
  91. 91. open my $fh, "<", $filename;
  92. 92. open my $fh, "<", $filename; Il fil eh an dle
  93. 93. open my $fh, "<", $filename; Il In fil eh ap ch an rir em dle ei od lf ali ile tà ?
  94. 94. 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 ? Il
  95. 95. Modalità di apertura
  96. 96. < Lettura > Scrittura >> Append +< Read/write Write/read (se il file esiste lo +> tronca
  97. 97. my $line = <$fh>;
  98. 98. my $line = <>; ata, a ab brevi Form ST DIN leg ge da
  99. 99. my $line = <DATA>; pec iale, For ma s dal legge ATA le D file hand
  100. 100. close $fh;
  101. 101.  Esercizi http://www.stefanorodighiero.net/perl101/examples.tgz
  102. 102. Espressioni regolari ::
  103. 103. Un linguaggio dentro il linguaggio.
  104. 104. Espressioni regolari Una maniera per esprimere insiemi di stringhe di caratteri Riconoscimento di formati Manipolazione del testo
  105. 105. /foo/
  106. 106. foo
  107. 107. foo bar foo baz
  108. 108. foo foo baz bar
  109. 109. foo foo baz bar
  110. 110. bar foo baz foo
  111. 111. bar foo baz foo
  112. 112. bar foo baz foo
  113. 113.  Esercizi http://www.stefanorodighiero.net/perl101/examples.tgz
  114. 114. Moduli ::
  115. 115. Insieme alle subroutine, ulteriore strumento di astrazione
  116. 116.  Esercizi
  117. 117. Ulteriori cenni su strict
  118. 118. Quando strict si lamenta per le variabili?
  119. 119. 1.
  120. 120. La variabile non è completamente qualificata.
  121. 121. 2.
  122. 122. Non è una variabile lessicale precedentemente definita.
  123. 123. 3.
  124. 124. Non è una variabile package precedentemente definita con vars
  125. 125. CPAN ::
  126. 126. search.cpan.org
  127. 127. $ perl -MCPAN -e shell
  128. 128. $ cpan
  129. 129. Qualche modulo utile
  130. 130. DBI
  131. 131. CGI
  132. 132. Template
  133. 133. Getopt::Long
  134. 134. DateTime
  135. 135. Regexp::Common
  136. 136. HTML::Parser::*
  137. 137. XML::LibXML
  138. 138. Moose
  139. 139. Bibliografia ::
  140. 140. Bibliografia :: Programming Perl Larry Wall et al. Oreilly, 1995
  141. 141. Bibliografia :: Pocket Perl Stefano Rodighiero Apogeo, 2008

×