Perl Quiz
Kamelbuch
Kamel
Unterm Röntgenblick
Was, ich bin tot?
Perl ist überall
Zeitgemäßes Perl
Perl als Auto
Perl 5 Quiz
Perl 6 unterwegs
Perl 6 ? - Frag mich!
Hochstapler bei der Arbeit
Hochstapler bei der Arbeit
Hochstapler bei der Arbeit  Wikipedia, Perl-Wikis,       Perl 6 TabletsPerl-Magazin, Perlzeitung,         heise.de Vorträg...
Mansfelder Land
Mansfelder Land
Egypt aka Khem
Dresden 2005
2011
5.14.1
11 März 2013Perl 5.16.3
Mai 2013Perl 5.18.0
Mai 2012Perl 5.16.0
RichterPerl 5.16
Keine Entschuldigung  Perl 5.16App::perlbrew !
Welches deref. nicht ?    each keys     join splice
Welches deref. nicht ?     join
Nicht Bei Jauch
Schwierigkeit: Brutal
Testfrage
Was tut „less“ ?
Das „less“ - Pragma ?   use less ...;
Gibt es das wirklich ?   use less memory;
Sicher Digger !use less memory;if ( less->of( CPU ) ) {    ...}elsif ( less->of( memory ) ) {    ...}
Antwort:   Nichts(legacy idea)
10 Fragen:    Aktuell: 5Introspektion: 3    Kurios: 2
Fangen Wir An
Frage 1 !  ???
Geht Das ?use v5.16;use v5.8;say Booh;
Leider Ja, ...use v5.16;use v5.8;say Booh;
..., aber nicht ab 5.18use v5.16;use v5.8;say Booh;
Geht Das ?Es Geht !
Geht Das ?Es Geht (noch) !
Frage 2 !  ???
Was macht das ?    $[ = 1;
Wie viele Elemente ?my @prim;$prim[1] = 2;say scalar @prim;
Erstes hat Index 0$prim[1] = 2;say scalar @prim;         2
Nun ist 1 Erster$[ = 1;$prim[1] = 2;say scalar @prim;         1
Unter 5.14$[ = 1;$prim[1] = 2;say scalar @prim;        1
Unter 5.16Error
Unter 5.16 use featurearray_base;
Unter 5.16use v5.14;
Frage 3 !  ???
Wie viele solcher brachte 5.16?      use feature     array_base;              $[
Wie viele solcher brachte 5.16?   use feature fc;
Wie viele solcher brachte 5.16?   use feature fc;         fc $str;       # fold case
Wie viele solcher brachte 5.16?      use feature    unicode_eval;
Wie viele solcher brachte 5.16?      use feature    unicode_eval;
Sieht $str als Unicode  use featureunicode_eval;   eval $str;
Sieht $str immer als Bytes    use feature    evalbytes;
Sieht $str immer als Bytes    use feature    evalbytes; evalbytes $str;
Wie viele solcher brachte 5.16?      use feature     current_sub;
Referenz auf aktuelle sub   use feature  current_sub;     __SUB__
Geh zurück zu 5.8use feature :5.16;
Geh zurück zu 5.8use feature :default;
Bedeutet das Gleiche  use feature   :default;no feature :all;
Wie viele solcher brachte 5.16?              8
Wie viele solcher brachte :   5.10: 3 (3)   5.12: 1 (3)   5.14: 0 (1)   5.16: 5 (8)
Frage 4 !  ???
Was ergibt „undef ~~ %ash“ ?            ?
Was macht „undef ~~ %ash“ ?     7 ~~ [2,7,5]
Was macht „undef ~~ %ash“ ?     7 ~~ [2,7,5]            1
Was macht „undef ~~ %ash“ ?qr/^b/ ~~ [habe,basta]            1
Was macht „undef ~~ %ash“ ?undef ~~ [2,undef,5]
Was macht „undef ~~ %ash“ ?undef ~~ [2,undef,5]            1
Was macht „undef ~~ %ash“ ?    2 ~~ {2 => 5}
Was macht „undef ~~ %ash“ ?    2 ~~ {2 => 5}            1
Was macht „undef ~~ %ash“ ?undef ~~ {undef => 5}
Was macht „undef ~~ %ash“ ?undef ~~ {undef => 5}    Key ist undef
Was macht „undef ~~ %ash“ ? undef ~~ {undef, 5}
Was macht „undef ~~ %ash“ ? undef ~~ {undef, 5}  trotzdem undef in Str  Kontext umgewandelt
Was macht „undef ~~ %ash“ ? undef ~~ {undef, 5} 5 wird unter  abgelegt say $h{};
Was macht „undef ~~ %ash“ ? undef ~~ {undef, 5} 5 wird unter  abgelegt undef ne  (immer)
Was macht „undef ~~ %ash“ ?Keine Suche kann erfolgreich sein.
Was macht „undef ~~ %ash“ ?        undef
Frage 5 !  ???
Wohin geht COMMIT ?
Wohin geht COMMIT ?     COMMIT
Vollständiger Syntax   ...(*COMMIT)...
Niemals ohne !
Zero Length Assertion       …($= ...)...       …($<= ...)...  ...(?(DEFINE) ...)...
Steuern Backtracking    ...(*ACCEPT)...    ...(*COMMIT)...        ...(*FAIL)...      ...(*MARK)...     ...(*PRUNE)...     ...
Unterbricht Backtrack   ...(*ACCEPT)...   ...(*COMMIT)...
Unterbricht Backtrack        # Erfolg   ...(*ACCEPT)...      # Mißerfolg   ...(*COMMIT)...
Backtracking /d(a|ak)ch/   dackel
h ne k/d(a|ak)ch/ dackel
Mit COMMIT/d(a|ak)(*COMMIT)ch/      dackel
Mißerfolg/d(a|ak)(*COMMIT)ch/      dackel
Ab 5.10Bricht Regex während   Backtracking als     Mißerfolg ab
Frage 6 !  ???
Zähl Rückgabewerte von ref ?         ref …;
Ohne Diese:    ref $objKlassen::Name
Referenzarten ?      ?
Referenzarten ?SCALAR ARRAY HASH  ref ““   ref []   ref {}
Referenzarten ?SCALAR ARRAY HASH  CODE       REF       ““ref sub {}; ref ““; ref ““
Referenzarten ?SCALAR ARRAY HASH  CODE     REF     ““  ref qx// eq „Regexp“
Referenzarten ?SCALAR ARRAY HASH   CODE    REF    ““ref *var{GLOB} eq “GLOB“
Referenzarten ?SCALAR ARRAY HASH  CODE    REF     ““ref v5.6 eq “VSTRING“
Namen der Referenzarten ?““ VSTRING SCALAR ARRAY HASH  IO CODE Regexp Format REF           GLOB            11
Wieviele Werte hat ref ?         11
Frage 7 !  ???
Ref-Arten in Symboltabelle ?            ?
Ref-Arten in Symboltabelle ?  *varname{SCALAR}
Namen der Referenzarten ?““ VSTRING SCALAR ARRAY          HASH  CODE Regexp IO Format       REF GLOB          11
Namen der Referenzarten ?       ““ VSTRING   SCALAR ARRAY HASH  CODE Regexp IO Format       REF GLOB          11
Ref-Arten in Symboltabelle ?  SCALAR ARRAY HASH       CODE Regexp     IO FORMAT GLOB             8
Ref-Arten in Symboltabelle ?  SCALAR ARRAY HASHCODE FORMAT IO GLOB             7
Ref-Arten in Symboltabelle ?            7
Frage 8 !  ???
Wie viele Werte liefert caller?
Wie viele Werte liefert caller !   package, filename,     line, subroutine,   hasargs, wantarray,   evaltext, is_require, ...
Wie viele Werte liefert caller !             11
Tip:say ((caller(0))[0])
Frage 9 !  ???
Wozu braucht man -s ?         ?
Kommandozeilenparameterperl -s test.pl -var=2
So NICHT !perl test.pl -s -var=2
So auch nicht !perl -s -var=2 test.pl
Nur So !!!perl -s test.pl -var=2
Im Programmperl -s test.pl -var=2      say $var;          2
var Ist aber globalperl -s test.pl -var=2    also: no strict;
Wozu braucht man -s ?Zur Einführung von   Variablen insProgramm aus der      Shell !
Frage 10 !
Was verändert reset ?
Löscht alle Varreset A-Z; !!!
Löscht alle Varkeine mit my oderstate deklarierten
Löscht alle Var keine mit my oder state deklariertenmy $d = 5;my $e = *d{SCALAR};say $$e; # kommt nix
Löscht alle Varkeine mit my oderstate deklariertennur globale oder mit       local
Löscht alle Varkeine mit my oderstate deklariertennur globale oder mit     local, our
Globale Abgeschaltetuse v5.12;use strict;nur globale oder mit     local, our
Globale Abgeschaltetuse v5.12;no strict refs;nur globale oder mit     local, our
„lokale“ sind legacyuse v5.12;no strict refs;nur globale oder mit     local, our
Löscht Var in Symbolt.reset A-Z;# doch ni schlimm?nur globale oder mit     local, our
Löscht Var in Symbolt.reset A-Z;# doch ni schlimm?löscht auch: %ENV, @INC, @ISA, etc.
Was verändert reset ?    besser:   undef $var;
Was verändert reset ?setzt jede $var auf       undef   (Zustand vor    Benutzung)
Was verändert reset ?setzt Variablen inSymboltabelle mit angegebenenAnfangsbuchstab  en auf undef
Nächste SlideShare
Wird geladen in …5
×

Perl 5 Quiz Chemnitz Edition

653 Aufrufe

Veröffentlicht am

Extra brutales quiz, rund um Perl 5.16, Introspektion, und einige kaum beachtete Nischen von Perl 5

0 Kommentare
0 Gefällt mir
Statistik
Notizen
  • Als Erste(r) kommentieren

  • Gehören Sie zu den Ersten, denen das gefällt!

Keine Downloads
Aufrufe
Aufrufe insgesamt
653
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
2
Aktionen
Geteilt
0
Downloads
2
Kommentare
0
Gefällt mir
0
Einbettungen 0
Keine Einbettungen

Keine Notizen für die Folie

Perl 5 Quiz Chemnitz Edition

  1. 1. Perl Quiz
  2. 2. Kamelbuch
  3. 3. Kamel
  4. 4. Unterm Röntgenblick
  5. 5. Was, ich bin tot?
  6. 6. Perl ist überall
  7. 7. Zeitgemäßes Perl
  8. 8. Perl als Auto
  9. 9. Perl 5 Quiz
  10. 10. Perl 6 unterwegs
  11. 11. Perl 6 ? - Frag mich!
  12. 12. Hochstapler bei der Arbeit
  13. 13. Hochstapler bei der Arbeit
  14. 14. Hochstapler bei der Arbeit Wikipedia, Perl-Wikis, Perl 6 TabletsPerl-Magazin, Perlzeitung, heise.de Vorträge, CPAN-Module, Kephra, WxPerlBuch
  15. 15. Mansfelder Land
  16. 16. Mansfelder Land
  17. 17. Egypt aka Khem
  18. 18. Dresden 2005
  19. 19. 2011
  20. 20. 5.14.1
  21. 21. 11 März 2013Perl 5.16.3
  22. 22. Mai 2013Perl 5.18.0
  23. 23. Mai 2012Perl 5.16.0
  24. 24. RichterPerl 5.16
  25. 25. Keine Entschuldigung Perl 5.16App::perlbrew !
  26. 26. Welches deref. nicht ? each keys join splice
  27. 27. Welches deref. nicht ? join
  28. 28. Nicht Bei Jauch
  29. 29. Schwierigkeit: Brutal
  30. 30. Testfrage
  31. 31. Was tut „less“ ?
  32. 32. Das „less“ - Pragma ? use less ...;
  33. 33. Gibt es das wirklich ? use less memory;
  34. 34. Sicher Digger !use less memory;if ( less->of( CPU ) ) { ...}elsif ( less->of( memory ) ) { ...}
  35. 35. Antwort: Nichts(legacy idea)
  36. 36. 10 Fragen: Aktuell: 5Introspektion: 3 Kurios: 2
  37. 37. Fangen Wir An
  38. 38. Frage 1 ! ???
  39. 39. Geht Das ?use v5.16;use v5.8;say Booh;
  40. 40. Leider Ja, ...use v5.16;use v5.8;say Booh;
  41. 41. ..., aber nicht ab 5.18use v5.16;use v5.8;say Booh;
  42. 42. Geht Das ?Es Geht !
  43. 43. Geht Das ?Es Geht (noch) !
  44. 44. Frage 2 ! ???
  45. 45. Was macht das ? $[ = 1;
  46. 46. Wie viele Elemente ?my @prim;$prim[1] = 2;say scalar @prim;
  47. 47. Erstes hat Index 0$prim[1] = 2;say scalar @prim; 2
  48. 48. Nun ist 1 Erster$[ = 1;$prim[1] = 2;say scalar @prim; 1
  49. 49. Unter 5.14$[ = 1;$prim[1] = 2;say scalar @prim; 1
  50. 50. Unter 5.16Error
  51. 51. Unter 5.16 use featurearray_base;
  52. 52. Unter 5.16use v5.14;
  53. 53. Frage 3 ! ???
  54. 54. Wie viele solcher brachte 5.16? use feature array_base; $[
  55. 55. Wie viele solcher brachte 5.16? use feature fc;
  56. 56. Wie viele solcher brachte 5.16? use feature fc; fc $str; # fold case
  57. 57. Wie viele solcher brachte 5.16? use feature unicode_eval;
  58. 58. Wie viele solcher brachte 5.16? use feature unicode_eval;
  59. 59. Sieht $str als Unicode use featureunicode_eval; eval $str;
  60. 60. Sieht $str immer als Bytes use feature evalbytes;
  61. 61. Sieht $str immer als Bytes use feature evalbytes; evalbytes $str;
  62. 62. Wie viele solcher brachte 5.16? use feature current_sub;
  63. 63. Referenz auf aktuelle sub use feature current_sub; __SUB__
  64. 64. Geh zurück zu 5.8use feature :5.16;
  65. 65. Geh zurück zu 5.8use feature :default;
  66. 66. Bedeutet das Gleiche use feature :default;no feature :all;
  67. 67. Wie viele solcher brachte 5.16? 8
  68. 68. Wie viele solcher brachte : 5.10: 3 (3) 5.12: 1 (3) 5.14: 0 (1) 5.16: 5 (8)
  69. 69. Frage 4 ! ???
  70. 70. Was ergibt „undef ~~ %ash“ ? ?
  71. 71. Was macht „undef ~~ %ash“ ? 7 ~~ [2,7,5]
  72. 72. Was macht „undef ~~ %ash“ ? 7 ~~ [2,7,5] 1
  73. 73. Was macht „undef ~~ %ash“ ?qr/^b/ ~~ [habe,basta] 1
  74. 74. Was macht „undef ~~ %ash“ ?undef ~~ [2,undef,5]
  75. 75. Was macht „undef ~~ %ash“ ?undef ~~ [2,undef,5] 1
  76. 76. Was macht „undef ~~ %ash“ ? 2 ~~ {2 => 5}
  77. 77. Was macht „undef ~~ %ash“ ? 2 ~~ {2 => 5} 1
  78. 78. Was macht „undef ~~ %ash“ ?undef ~~ {undef => 5}
  79. 79. Was macht „undef ~~ %ash“ ?undef ~~ {undef => 5} Key ist undef
  80. 80. Was macht „undef ~~ %ash“ ? undef ~~ {undef, 5}
  81. 81. Was macht „undef ~~ %ash“ ? undef ~~ {undef, 5} trotzdem undef in Str Kontext umgewandelt
  82. 82. Was macht „undef ~~ %ash“ ? undef ~~ {undef, 5} 5 wird unter abgelegt say $h{};
  83. 83. Was macht „undef ~~ %ash“ ? undef ~~ {undef, 5} 5 wird unter abgelegt undef ne (immer)
  84. 84. Was macht „undef ~~ %ash“ ?Keine Suche kann erfolgreich sein.
  85. 85. Was macht „undef ~~ %ash“ ? undef
  86. 86. Frage 5 ! ???
  87. 87. Wohin geht COMMIT ?
  88. 88. Wohin geht COMMIT ? COMMIT
  89. 89. Vollständiger Syntax ...(*COMMIT)...
  90. 90. Niemals ohne !
  91. 91. Zero Length Assertion …($= ...)... …($<= ...)... ...(?(DEFINE) ...)...
  92. 92. Steuern Backtracking ...(*ACCEPT)... ...(*COMMIT)... ...(*FAIL)... ...(*MARK)... ...(*PRUNE)... ...(*SKIP)... ...(*THEN)...
  93. 93. Unterbricht Backtrack ...(*ACCEPT)... ...(*COMMIT)...
  94. 94. Unterbricht Backtrack # Erfolg ...(*ACCEPT)... # Mißerfolg ...(*COMMIT)...
  95. 95. Backtracking /d(a|ak)ch/ dackel
  96. 96. h ne k/d(a|ak)ch/ dackel
  97. 97. Mit COMMIT/d(a|ak)(*COMMIT)ch/ dackel
  98. 98. Mißerfolg/d(a|ak)(*COMMIT)ch/ dackel
  99. 99. Ab 5.10Bricht Regex während Backtracking als Mißerfolg ab
  100. 100. Frage 6 ! ???
  101. 101. Zähl Rückgabewerte von ref ? ref …;
  102. 102. Ohne Diese: ref $objKlassen::Name
  103. 103. Referenzarten ? ?
  104. 104. Referenzarten ?SCALAR ARRAY HASH ref ““ ref [] ref {}
  105. 105. Referenzarten ?SCALAR ARRAY HASH CODE REF ““ref sub {}; ref ““; ref ““
  106. 106. Referenzarten ?SCALAR ARRAY HASH CODE REF ““ ref qx// eq „Regexp“
  107. 107. Referenzarten ?SCALAR ARRAY HASH CODE REF ““ref *var{GLOB} eq “GLOB“
  108. 108. Referenzarten ?SCALAR ARRAY HASH CODE REF ““ref v5.6 eq “VSTRING“
  109. 109. Namen der Referenzarten ?““ VSTRING SCALAR ARRAY HASH IO CODE Regexp Format REF GLOB 11
  110. 110. Wieviele Werte hat ref ? 11
  111. 111. Frage 7 ! ???
  112. 112. Ref-Arten in Symboltabelle ? ?
  113. 113. Ref-Arten in Symboltabelle ? *varname{SCALAR}
  114. 114. Namen der Referenzarten ?““ VSTRING SCALAR ARRAY HASH CODE Regexp IO Format REF GLOB 11
  115. 115. Namen der Referenzarten ? ““ VSTRING SCALAR ARRAY HASH CODE Regexp IO Format REF GLOB 11
  116. 116. Ref-Arten in Symboltabelle ? SCALAR ARRAY HASH CODE Regexp IO FORMAT GLOB 8
  117. 117. Ref-Arten in Symboltabelle ? SCALAR ARRAY HASHCODE FORMAT IO GLOB 7
  118. 118. Ref-Arten in Symboltabelle ? 7
  119. 119. Frage 8 ! ???
  120. 120. Wie viele Werte liefert caller?
  121. 121. Wie viele Werte liefert caller ! package, filename, line, subroutine, hasargs, wantarray, evaltext, is_require, hints, bitmask, hinthash
  122. 122. Wie viele Werte liefert caller ! 11
  123. 123. Tip:say ((caller(0))[0])
  124. 124. Frage 9 ! ???
  125. 125. Wozu braucht man -s ? ?
  126. 126. Kommandozeilenparameterperl -s test.pl -var=2
  127. 127. So NICHT !perl test.pl -s -var=2
  128. 128. So auch nicht !perl -s -var=2 test.pl
  129. 129. Nur So !!!perl -s test.pl -var=2
  130. 130. Im Programmperl -s test.pl -var=2 say $var; 2
  131. 131. var Ist aber globalperl -s test.pl -var=2 also: no strict;
  132. 132. Wozu braucht man -s ?Zur Einführung von Variablen insProgramm aus der Shell !
  133. 133. Frage 10 !
  134. 134. Was verändert reset ?
  135. 135. Löscht alle Varreset A-Z; !!!
  136. 136. Löscht alle Varkeine mit my oderstate deklarierten
  137. 137. Löscht alle Var keine mit my oder state deklariertenmy $d = 5;my $e = *d{SCALAR};say $$e; # kommt nix
  138. 138. Löscht alle Varkeine mit my oderstate deklariertennur globale oder mit local
  139. 139. Löscht alle Varkeine mit my oderstate deklariertennur globale oder mit local, our
  140. 140. Globale Abgeschaltetuse v5.12;use strict;nur globale oder mit local, our
  141. 141. Globale Abgeschaltetuse v5.12;no strict refs;nur globale oder mit local, our
  142. 142. „lokale“ sind legacyuse v5.12;no strict refs;nur globale oder mit local, our
  143. 143. Löscht Var in Symbolt.reset A-Z;# doch ni schlimm?nur globale oder mit local, our
  144. 144. Löscht Var in Symbolt.reset A-Z;# doch ni schlimm?löscht auch: %ENV, @INC, @ISA, etc.
  145. 145. Was verändert reset ? besser: undef $var;
  146. 146. Was verändert reset ?setzt jede $var auf undef (Zustand vor Benutzung)
  147. 147. Was verändert reset ?setzt Variablen inSymboltabelle mit angegebenenAnfangsbuchstab en auf undef

×