Changeset 171
- Timestamp:
- 08/25/08 04:27:50 (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/perl/syntaxe.tex
r162 r171 20 20 \item tout ce qui suit un \verb+#+ est un commentaire 21 21 \pause 22 \item \verb+__END__+ mets fin au script22 \item \verb+__END__+ indique la fin des instructions 23 23 \end{itemize} 24 24 \pause 25 25 26 Tout est permis, y compris apporter de la lisibilité à votre code: 26 \begin{exampleblock}{Tout est permis, y compris apporter de la lisibilité à votre code:} 27 27 \begin{verbatim} 28 28 push # création du tableau 29 29 ( @tableau 30 , $valeur, 31 $valeur2 ); 32 \end{verbatim} 33 Sauf si vous tenez à faire dans l'obfu ! 30 , $valeur, $valeur2 ); 31 \end{verbatim} 32 \end{exampleblock} 34 33 \end{frame} 35 34 … … 65 64 \begin{frame}[fragile] 66 65 \frametitle{if} 66 \begin{exampleblock}{Bah... if quoi...} 67 67 \onslide<1-> 68 Bah... if quoi...69 68 \vfill 70 69 \begin{verbatim} … … 85 84 } 86 85 \end{verbatim} 86 \end{exampleblock} 87 87 \onslide<4-> 88 Forme suffixée: 88 \begin{block}{Forme suffixée:} 89 89 \begin{verbatim} 90 90 print "var vaut 0\n" if ($var == 0); 91 91 \end{verbatim} 92 \end{block} 92 93 \end{frame} 93 94 94 95 \begin{frame}[fragile] 95 96 \frametitle{while} 96 Boucle tant qu'une condition est vraie: 97 97 \begin{exampleblock}{Boucle tant qu'une condition est vraie:} 98 98 \begin{verbatim} 99 99 while ($i < 100) { … … 102 102 } 103 103 \end{verbatim} 104 \vfill 105 \pause 106 Forme suffixée: 107 104 \pause 105 \begin{verbatim} 106 do { 107 print "$i\n"; 108 $i++; 109 } while($i < 100; 110 \end{verbatim} 111 \end{exampleblock} 112 \vfill 113 \pause 114 \begin{block}{Forme suffixée:} 108 115 \begin{verbatim} 109 116 $i++ while($i < 100); 110 117 \end{verbatim} 118 \end{block} 111 119 \end{frame} 112 120 113 121 \begin{frame}[fragile] 114 122 \frametitle{foreach} 115 Boucle \textbf{pour chaque} élément d'une liste: 116 123 \begin{exampleblock}{Boucle \textbf{pour chaque} élément d'une liste:} 117 124 \begin{verbatim} 118 125 foreach $elem (@tableau) { … … 120 127 } 121 128 \end{verbatim} 129 \end{exampleblock} 122 130 123 131 Très pratique, cela évite de s'embeter avec les indices du tableau. … … 125 133 \pause 126 134 127 Forme suffixée: 128 135 \begin{block}{Forme suffixée:} 129 136 \begin{verbatim} 130 137 print "$_\n" foreach(@tableau); 131 138 \end{verbatim} 139 \end{block} 132 140 \end{frame} 133 141 134 142 \begin{frame}[fragile] 135 143 \frametitle{Sortez moi de là} 136 \textbf{next} fait passer à la prochaine itération d'une boucle: 137 144 \begin{block}{\textbf{next} fait passer à la prochaine itération d'une boucle:} 138 145 \begin{verbatim} 139 146 foreach $val (@tableau) { … … 142 149 } 143 150 \end{verbatim} 144 \ pause145 \ vfill146 \ textbf{last} quitte une boucle:147 151 \end{block} 152 \pause 153 \vfill 154 \begin{block}{\textbf{last} quitte une boucle:} 148 155 \begin{verbatim} 149 156 foreach $val (@tableau) { … … 155 162 } 156 163 \end{verbatim} 164 \end{block} 157 165 \end{frame} 158 166 … … 161 169 \begin{frame}[fragile] 162 170 \frametitle{Fonctions} 163 Déclarer une fonction: 164 171 \begin{block}{Déclarer une fonction:} 165 172 \begin{verbatim} 166 173 sub fonction { … … 168 175 } 169 176 \end{verbatim} 170 \ pause171 On l'appelle: 172 177 \end{block} 178 \pause 179 \begin{block}{Utilisation} 173 180 \begin{verbatim} 174 181 fonction(); 175 \end{verbatim} 176 177 ou tout simplement: 178 \begin{verbatim} 182 179 183 fonction; 180 184 \end{verbatim} 181 \ pause182 \ vfill183 Sub anonyme, plus rarement utilisé: 184 185 \end{block} 186 \pause 187 \vfill 188 \begin{block}{\textit{Sub anonyme}, plus rarement utilisé:} 185 189 \begin{verbatim} 186 190 my $sub = sub { }; 187 191 $sub->(); 188 192 \end{verbatim} 189 190 \end{frame} 191 192 \begin{frame}[fragile] 193 \frametitle{Fonction passage d'arguments} 194 Perl est un langage qui fonctionne avec un pile: 195 \pause 196 \vfill 193 \end{block} 194 \end{frame} 195 196 \begin{frame}[fragile] 197 \frametitle{Fonction: passage d'arguments} 198 \begin{block}{les arguments sont passé dans \textbf{@\_}} 199 \only<2>{On passe 1 arguments} 200 \only<3>{On n arguments (ici 2)} 201 \only<5>{on rends le premier arguments obligatoire, les autres 202 sont optionnels} 203 \onslide<4>{Via un hash: 197 204 \begin{itemize} 198 \item on pouse des élément sur la piles 199 \item on récupère la pile 200 \item on pose les résultat sur la pile 201 \item on récupère la pile 205 \item arguments nommés 206 \item arguments optionnels 207 \end{itemize}} 208 \end{block} 209 \begin{exampleblock}{} 210 \pause 211 \begin{semiverbatim} 212 sub affiche \{ 213 (\only<2-3,5->{$arg}\only<3,5->{, }\only<3>{$arg2}\only<4->{\%hash}) = @_; 214 print \only<2-3,5->{"$arg\\n"}\only<4>{$hash\{key1\}}; 215 \} 216 217 affiche(\only<2,3,5->{"foo"}\only<3,5->{, }\only<3>{"bar"}\only<4->{key1 => "val1"}); 218 \end{semiverbatim} 219 \end{exampleblock} 220 \end{frame} 221 222 \begin{frame}[fragile] 223 \frametitle{Retours des valeurs} 224 \begin{block}{la dernière valeur est retournée} 225 \pause 226 \only<2-3>{On renvoit \only<2>{explicitement}\only<3>{implicitement} \$res 227 \only<3>{ (dernière valeur)}} 228 \only<4>{On renvoit explicitement le résultat} 229 \only<5>{le resultat est la dernière valeur\ldots} 230 \end{block} 231 \begin{exampleblock}{} 232 \begin{semiverbatim} 233 sub addition \{ 234 ($un, $deux) = @\_; 235 \only<2-3>{$res = }\only<4>{return }$un + $deux; 236 \only<2>{return }\only<2-3>{$res} 237 \} 238 239 print addition(2, 4); 240 \end{semiverbatim} 241 \end{exampleblock} 242 \end{frame} 243 244 \subsection{Déclarer ses variables} 245 246 \begin{frame}[fragile] 247 \frametitle{my and compagny} 248 \begin{block}{Perl est très laxiste:} 249 \pause 250 \only<2>{Voici un code qui fonctionne, mais pas comme on veut\ldots} 251 \onslide<3->{ 252 Deux moyens de forcer les décalarations: 253 \pause 254 \begin{itemize} 255 \item \textbf{use strict;} force la declaration des variables 256 \pause 257 \item \textbf{use warnings;} produit des warnings sur les actions douteuses 202 258 \end{itemize} 203 \vfill 204 La pile est une liste. 205 \end{frame} 206 207 \begin{frame}[fragile] 208 \frametitle{Fonction passage d'arguments} 209 Exemple: 210 \pause 211 212 \onslide<2-> 213 \begin{verbatim} 214 sub fonction { 215 \end{verbatim} 216 \onslide<3-> 217 \begin{verbatim} 218 my ($param) = @_; 219 \end{verbatim} 259 } 260 \only<6->{\textbf{my} sert à déclarer une variable\\ 261 } 262 \pause 263 \only<8->{Voilà qui est parfait !} 264 \end{block} 265 266 \onslide<5,7>{ 267 \begin{alertblock}{l'erreur:} 268 \only<5>{Global symbol "\$latitude" requires explicit package} 269 \only<7>{Global symbol "\$latitud" requires explicit package} 270 \end{alertblock} 271 } 272 273 \onslide<1-> 274 \begin{exampleblock}{} 275 \begin{semiverbatim} 276 \onslide<5->{use strict; 277 } 278 \only<6->{my }$latitude = 5; 279 print "$latitud\only<8->{e}\\n"; 280 \end{semiverbatim} 281 \end{exampleblock} 282 283 \end{frame} 284 285 \begin{frame} 286 \frametitle{The use strict rules} 287 288 \begin{alertblock}{J'ai bien pris note que:} 289 \only<2->{ 290 J'utiliserais au moins \textit{use strict}\\ 291 } 292 \only<3->{ 293 J'utiliserais \textbf{toujours} au moins \textit{use strict}\\ 294 } 295 \only<4->{ 296 \textbf{Jamais} je ne dérangerais un gourou Perl si je n'ai pas utilisé 297 \textit{use strict}\\ 298 } 299 300 \end{alertblock} 301 \end{frame} 302 303 \begin{frame}[fragile] 304 \frametitle{Portée des variables} 305 \begin{alertblock}{} 306 \verb+$var+ différent de \verb+@var+ différent de \verb+%var+ ! 307 \end{alertblock} 308 \pause 309 \begin{block}{les règles} 310 Sans \verb+use strict;+ ni \verb+my+ Perl fait au mieux.\\ 311 \pause 312 Les déclarations se font n'importe où, mais avant leur utilisation. 313 \end{block} 314 \pause 315 \begin{exampleblock}{example:} 220 316 \onslide<4-> 221 \begin{verbatim} 222 return("-- $param --"); 223 \end{verbatim} 224 \onslide<2-> 225 \begin{verbatim} 226 } 227 \end{verbatim} 228 \onslide<2> 229 \begin{verbatim} 230 fonction(); 231 \end{verbatim} 232 \onslide<4-> 233 \begin{verbatim} 234 my $resultat = 235 \end{verbatim} 236 \onslide<3-> 237 \begin{verbatim} 238 fonction("perl"); 239 \end{verbatim} 240 241 \end{frame} 242 243 \subsection{Déclarer ses variables} 244 245 \begin{frame}[fragile] 246 \frametitle{my and co} 247 Perl est très laxiste: 248 \pause 249 250 \onslide<2-4> 251 \begin{verbatim} 252 $latitude = 5; 253 print "$latitud\n"; 254 \end{verbatim} 255 256 \onslide<2-> 257 Deux moyens de forcer les décalarations: 258 \pause 259 \begin{itemize} 260 \item \verb+use strict;+ force la declaration des variables 261 \pause 262 \item \verb+use warnings;+ produit des warnings sur les actions douteuses 263 \end{itemize} 264 265 \onslide<5> 266 \begin{verbatim} 317 \begin{semiverbatim} 267 318 use strict; 268 269 my $latitude = 5; 270 print "$latitude\n"; 271 \end{verbatim} 272 273 274 \end{frame} 275 276 \begin{frame}[fragile] 277 \frametitle{Portée des variables} 278 \verb+$var+ différent de \verb+@var+ différent de \verb+%var+ ! 279 280 Sans \verb+use strict;+ Perl fait au mieux. 281 282 \pause 283 Les déclarations se font n'importe où, mais avant leur utilisation: 284 285 \onslide<3-> 286 \vfill 287 \only<3>{Un script propre:} 288 \only<4>{Déclaration d'une variable globale:} 289 \only<5>{Au sein d'un bloc, on déclare un variable:} 290 \only<6>{On peut utiliser la variable globale:} 291 \only<7>{Attention avant l'initialisation !:} 292 293 \onslide<3-> 294 \begin{verbatim} 295 use strict; 296 \end{verbatim} 297 298 \onslide<7-> 299 \begin{verbatim} 300 mafonction(); 301 \end{verbatim} 302 303 \onslide<4-> 304 \begin{verbatim} 319 \onslide<5->{mafonction();} 305 320 my $var = 1 306 \end{verbatim} 307 308 \onslide<5-> 309 \begin{verbatim} 310 sub mafonction { 311 \end{verbatim} 312 \onslide<6-> 313 \begin{verbatim} 321 sub mafonction \{ 314 322 print $var; 315 \end{verbatim}316 \onslide<5->317 \begin{verbatim}318 323 my $fvar = 3; 319 } 320 \end{verbatim} 324 \} 325 \end{semiverbatim} 326 \end{exampleblock} 321 327 \end{frame} 322 328
Note: See TracChangeset
for help on using the changeset viewer.