History from Perl 1.0 to Perl 6

Ffd3f0ebea474176dfbe876216a793f9?s=47 AnaTofuZ
September 14, 2018

History from Perl 1.0 to Perl 6

Roppongi.pm #1でのトークです

Ffd3f0ebea474176dfbe876216a793f9?s=128

AnaTofuZ

September 14, 2018
Tweet

Transcript

  1. History from Perl 1.0 to Perl 6
 ~ͬ͟ͱݟΔPerlͷྺ࢙~ ീӢΞφάϥ@AnaTofuZ Roppongi.pm

    #1 9/14
  2. ϋΠαΠ!!!

  3. Okinawa.pm ͔Βདྷ·ͨ͠

  4. Ξφάϥ(@AnaTofuZ)Ͱ͢ • ԭೄ/ླྀٿେֶ޻ֶ෦৘ใ޻ֶՊB4
 (དྷ೥΋ֶੜͰ͢) • ԭೄग़਎Ͱ͸ͳ͍ͷͰ࠮ٗͱݴΘΕ·͢ • Okinawa.pm,PerlೖֶࣜinԭೄʹΑ͍͘·͢ • ࠷ۙ਌஌ΒͣΛൈࣃ͠·͍ͬͯ͘ΔͷͰ


    ޱ͔Β݂ͷຯ͕͠·͢
  5. ͋Δ೔

  6. ;ͱࢥ͏

  7. Perl5

  8. Perl5

  9. Perl1 Perl2 Perl3 Perl4

  10. ࣮ࡏ ͨ͠ͷ͔

  11. ීஈ࢖͍ͬͯΔPerlͬͯ… • େମͷํ͕ར༻͍ͯ͠Δ΋ͷ͸Perl5.*
 (Ұ෦ք۾Ͱ͸Perl6) • Perl5.*͕͋Δͱ͍͏͜ͱ͸ɼͦΕҎલͷ
 Perl1.0~Perl4.0͕ଘࡏ͍ͯ͠Δ͸ͣ

  12. History from Perl 1.0 to Perl 6
 ~ͬ͟ͱݟΔPerlͷྺ࢙~ ീӢΞφάϥ@AnaTofuZ Roppongi.pm

  13. ͜ͷτʔΫͰ͸ • ͜ͷτʔΫͰ͸ࠓ͸୭΋࢖͍ͬͯͳ͍(͸ͣ)ͳ
 ྺ࢙తͳPerlΛbuildͯ͠ಛੑΛ୳Γ·͢ • ݱࡏͷPerl5ʹࢸΔ·ͰͷPerlͷྺ࢙Λ20෼Ͱݟͯ ͍͖·͢ • ࡉ͔͍buildͷ࢓ํ͸࠙਌ձͰڵຯ͕͋Ε͹
 ͓࿩͠·͢

  14. ΞδΣϯμ • Perl1.0 • Perl2.0 • Perl3.0 • Perl4.0 •

    Perl5.0 • Perl6
  15. աڈͷPerlͷ୳͠ํ • ࠓͷϦϙδτϦ͸Perl5 • ϒϥϯν্ʹPerl4ͷ࠷ऴ൫͸ଘࡏ͍ͯ͠Δ • άάͬͯ΋ͳ͔ͳ͔Perl2,Perl3ͷίʔυ͸
 ݟ͔ͭΒͳ͍

  16. None
  17. None
  18. None
  19. ʊਓਓਓਓਓਓਓਓਓਓਓਓਓʊ ʼɹPerl5ͷϦϙδτϦʹݱଘɹʻ ʉY^Y^Y^Y^Y^Y^Y^Y^Y^Y^ʉ

  20. Perlͷྺ࢙ • Perl1.0ͷ࣌୅ͷϦϦʔε͕ϦϙδτϦʹ
 ࢒͍ͬͯΔ • ॳظ͸LarryʹΑΓMLʹ౤ߘ͞Ε͍ͯΔ
 (google group͔Βݱࡏ΋ӾཡՄೳ) • GitHub্Ͱ͸id:TimTody

    (LarryͷΞΧ΢ϯτ)͕ commit͍ͯ͠ΔࣄʹͳͬͯΔ
  21. աڈͷPerlͷงғؾͷ஌Γํ • ී௨ʹݕࡧͯ͠΋αϯϓϧίʔυ౳͕
 ग़ͯ͜ͳ͍Մೳੑ͕ߴ͍ • manͱςετίʔυ͕ख͕͔Γ • manͰ࣮૷͞Ε͍ͯΔػೳΛ֬ೝ • ςετίʔυͰ࣮ࡍͷ࢖͍ํΛ୳Δ

  22. աڈͷPerlͷbuildํ๏ • Mac OSͷ৔߹σϑΥϧτͰೖ͍ͬͯΔgcc͜ͱ clangͰ͸ϔομʔϑΝΠϧؔ࿈ͷΤϥʔ͕ଟൃ • ͦͷͨΊࣗલͰgccΛbuildͯͦ͠ΕΛར༻͢Δ ඞཁ͕͋Δ • brewͰinstallͨ͠gccͰ͸ବ໨

  23. Perl1.0

  24. Perl1.0 • ݱଘ͢Δ࠷ݹͷPerl • LarryWall͕ॻ͍ͨ • C,awk,sed,shͷྑ͍ͱ͜ΖΛऔͬͨݴޠ • 1987/12/18ʹϦϦʔε(stat͢Δͱ֬ೝͰ͖Δ)

  25. ؾʹͳΔPerl1.0࠷৽ಈ޲(2) • As a birthday present to Perl and Larry,

    through the work of the perl1-porters, in particular Richard Clamp, resurrected here is Perl 1.0 with minimal patches for modern machines. • ϕʔΦ΢ϧϑͷࢻͱڞʹ2002೥ͷ12݄19೔ʹ
 gcc-3ʹରԠͨ͠ύονͷtag͕ଧͨΕΔ • LarryͱPerl΁ͷ͓஀ੜ೔ϓϨθϯτ
  26. ؾʹͳΔPerl1.0࠷৽ಈ޲(2) • chastai͞Μ͕Perl1.0ͷϝϯςΛ͍ͯͨ͠΋ͷ Λbitbucketʹ͍͋͛ͯͨ
 https://bitbucket.org/chastai/perl-1.0 • ·͔͞ͷςετ͕100%௨Δ • ࠓ೔ݟͨΒϦϙδτϦ͕ফ͍͑ͯͨ

  27. Perl5ͷσʔλܕ • εΧϥʔ • ഑ྻ • ϋογϡ • ϦϑΝϨϯε

  28. Perl1ͷσʔλܕ • εΧϥʔ • ഑ྻ • ϋογϡ • ϦϑΝϨϯε

  29. Perl1ͷσʔλܕ • εΧϥʔ • ഑ྻ • ϋογϡ • ϦϑΝϨϯε

  30. Perl1ͷσʔλܕ • εΧϥʔ • ഑ྻ + ࿈૝഑ྻ

  31. Perl1ͷσʔλܕ • εΧϥʔ • ഑ྻ + ࿈૝഑ྻ

  32. Perl1ͷσʔλܕ • String • String഑ྻ + ࿈૝഑ྻ

  33. Perl1Ͱͳ͍΋ͷ • ൣғԋࢉࢠ • foreach (ग़དྷͳ͘͸ͳ͍) • ଞϞδϡʔϧ • use

    • my,our,local…
  34. Perl1Ͱ͋Δ΋ͷ • ஔ׵ • جຊਖ਼نදݱ • Ϧετૢ࡞ (shift,unsift,pop,push) • @_

    • จࣈྻԋࢉࢠ • chop • each
  35. αϒϧʔνϯ΋͋Δͧ!! sub MAX { $max = pop(@_); while ($foo =

    pop(@_)) { $max = $foo if $max < $foo; } $max; } ... $bestday = do MAX($mon,$tue,$wed,$thu,$fri);
  36. for loop΋ग़དྷΔͧ!! #!/usr/bin/env perl @array = (1,2,3,4,5,6,7,8,9,10); for ( $i

    = 0; $i < $#array; $i++){ print $array[$i] ."\n"; }
  37. for loop (੒ޭ) #!/usr/bin/env perl @array = (1,2,3,4,5,6,7,8,9,10); for (

    $i = 0; $i < $#array; $i++){ print $array["$i"] ."\n"; }
  38. ऑ఺ • γϯϘϧςʔϒϧʹΞΫηεͰ͖ͳ͍ • αϒϧʔνϯʹ഑ྻΛ౉ͤͳ͍
 (ग़དྷͳ͘͸ͳ͍) • ίϯύΠϧΤϥʔͷϝοηʔδ͕ແͯ͘ݫ͠ ͍

  39. Perl1.0/perl.h • Perlͷ಺෦σʔλܕ͸perl.hͰtypedef͠
 େจࣈͷํΛར༻͢Δ 1 typedef struct arg ARG; 2

    typedef struct cmd CMD; 3 typedef struct formcmd FCMD; 4 typedef struct scanpat SPAT; 5 typedef struct stab STAB; 6 typedef struct stio STIO; 7 typedef struct string STR; 8 typedef struct atbl ARRAY; 9 typedef struct htbl HASH;
  40. Perl1.0ͷ഑ྻ • atblߏ଄ମ͕഑ྻͱͯ͠ػೳ • ࣮૷͸ࢸͬͯγϯϓϧͰSTRͷϙΠϯλ഑ྻͱ
 ഑ྻͷ࠷େ஋ary_max,ݸ਺ͷ൑அʹ࢖͏ary_fill • 
 1 struct

    atbl { 2 STR **ary_array; 3 int ary_max; 4 int ary_fill; 5 };
  41. Perl2.0

  42. Perl2.0 • 1988೥6݄5೔ϦϦʔε • foreach͕௥Ճ • local͕ॳొ৔ • σʔλߏ଄͕Perl1.0ΑΓ΋ෳࡶʹॻ͖׵ΘΔ •

    ࿈૝഑ྻͷdelete͕௥Ճ • (౰࣌)sedΑΓ΋ߴ଎ʹͳͬͨ
  43. Perl2.0 • ֦ுਖ਼نදݱ͕αϙʔτ
 /(foo|bar)/, /(foo)*/,/(foo)+/ • \s,\S,\d,\D͕࢖༻Մೳʹ • αϒϧʔνϯͷ࠶ؼݺͼग़͕͠Մೳʹͳͬͨ •

    do ‘foo.pl’ ͳͲͰ֎෦ϑΝΠϧΛऔΓࠐΊΔ༷ʹ • libҎԼʹPerl੡ͷϞδϡʔϧ͕஀ੜ(getopt.plͳͲ)
  44. Perl2.0ͰϑΟϘφον਺ྻ 1 sub fib { 2 local($arg) = @_; 3

    local($foo); 4 $level++; 5 if ($arg <= 2) { 6 $foo = 1; 7 } 8 else { 9 $foo = do fib($arg-1) + do fib($arg-2); 10 } 11 $level--; 12 $foo; 13 }
  45. Perl2.0͓΋͠ΖϙΠϯτ • จࣈྻதͷ഑ྻ͸ల։͞Εͳ͍ 1 @helo = (1,2,3); 2 3 print

    @helo.”\n”; #3 4 print “@helo\n"; #@hello
  46. Perl2.0ͷStringܕ • STAB͕಺෦ʹຒΊࠐ·ΕΔΑ͏ʹͳͬͨ 1 struct string { 2 char *

    str_ptr; /* pointer to malloced string */ 3 double str_nval; /* numeric value, if any */ 4 int str_len; /* allocated size */ 5 int str_cur; /* length of str_ptr as a C string */ 6 union { 7 STR *str_next; /* while free, link to next free str */ 8 STAB *str_magic; /* while in use, ptr to magic stab, if an */ 9 } str_link; 10 char str_pok; /* state of str_ptr */ 11 char str_nok; /* state of str_nval */ 12 char str_rare; /* used by search strings */ 13 char str_prev; /* also used by search strings */ 14 };
  47. Perl3.0

  48. Perl3.0 • 1988೥6݄5೔ϦϦʔε • ҹ৅ͱͯ͠Perl5ͷݪܕ͕׬੒͢Δ • foreach͕಺෦తʹforͱಉ౳ʹͳΔ • ൣғԋࢉࢠ..͕഑ྻίϯςΩετʹରԠ

  49. Perl3 • ܕάϩϒ͕ొ৔
 αϒϧʔνϯʹ೚ҙͷม਺Λ౉͢ࣄ͕Մೳʹ •࿈૝഑ྻ͕ެࣜͷσʔλܕʹঢ֨
 εΧϥʔ,εΧϥʔͷ഑ྻ,εΧϥʔͷ࿈૝഑ྻ ͷ3छྨ

  50. Perl3 • αϒϧʔνϯίʔϧ͕do hoge͔Β
 &hogeʹมߋ͞Ε,Ҿ਺ͳ͠Ͱ΋࣮ߦՄೳʹ • -uΦϓγϣϯ͕௥Ճ͞ΕPerlεΫϦϓτ࣮ߦޙ ʹdump͢Δػೳ͕͍ͭͨ(όΠφϦ͕ੜ੒ग़ དྷΔΑ͏ʹͳͬͨ)

  51. Perl3 • จࣈྻதͷ@array͕ల։͞ΕΔΑ͏ʹͳͬͨ • αϒϧʔνϯ΍mainͰshiftͱॻ͘ͱARGV͔@_ ΛΑ͠ͳʹର৅ʹͯ͘͠ΕΔΑ͏ʹਐԽ • mkdir,chrootͳͲͷOSܥͷؔ਺௥Ճ • reverse,definedͳͲ͕௥Ճ͞ΕΔ

  52. ൣғԋࢉࢠͷಈ͖ • scalar operatorͱͯ͠ͷಈ͖
 (҉໧తʹߦ൪߸$.ͱൺֱ) 2 if (101 .. 200)

    { print; } # print 2nd hundred lines 3 4 next line if (1 .. /^$/); # skip header lines 5 6 s/^/> / if (/^$/ .. eof()); # quote body 7 9 for (101 .. 200) { print; } # print $_ 100 times 10 11 @foo = @foo[$[ .. $#foo]; # an expensive no-op 12 @foo = @foo[$#foo-4 .. $#foo]; # slice last 5 items • array operatorͱͯ͠ͷಈ͖
  53. Perl3 • ܕάϩϒ
 Perl͕ม਺ͷ৘ใΛอଘ͢ΔγϯϘϧςʔϒϧ ΁ͷΞΫηεํ๏

  54. Perl3-Perl4ͷܕάϩϒ 1 #!../perl 2 3 $hoge = "wanwan"; 4 %hoge

    = ('cat' , "nyanya"); 5 *foo = *hoge; 6 7 print "$foo{'cat'}\n"; 8 *piyo = $_main{'hoge'}; 9 print "$piyo\n";
  55. (ࢀߟ)Perl5ͷܕάϩϒ 1 #!/usr/bin/env perl 2 our $hoge = 'wanwa'; 3

    $hoge_glob = *hoge{SCALAR}; 4 5 print "${$hoge_glob}\n";
  56. Perl5ͷܕάϩϒͱͷҧ͍ • ΤϯτϦʔΛ·Δ͝ͱ࣋ͬͯ͘ΔͨΊSCALAR ͳͲͷࢦఆ͕ෆՄೳ • $_main͕mainؔ਺ͷγϯϘϧςʔϒϧͰ͋Γ ௚઀ૢ࡞Մೳ(%main::Ͱ͸ͳ͍)

  57. Perl3ͷεΧϥʔܕ 1 struct string { 2 char * str_ptr; /*

    pointer to malloced string */ 3 union { 4 double str_nval; /* numeric value, if any */ 5 STAB *str_stab; /* magic stab for magic "key" string */ 6 long str_useful; /* is this search optimization effective? */ 7 ARG *str_args; /* list of args for interpreted string */ 8 HASH *str_hash; /* string represents an assoc array (stab?) */ 9 ARRAY *str_array; /* string represents an array */ 10 } str_u; 11 int str_len; /* allocated size */ 12 int str_cur; /* length of str_ptr as a C string */ 13 STR *str_magic; /* while free, link to next free str */ 14 /* while in use, ptr to "key" for magic items */ 15 char str_pok; /* state of str_ptr */ 16 char str_nok; /* state of str_nval */ 17 unsigned char str_rare; /* used by search strings */ 18 unsigned char str_state; /* one of SS_* below */ 19 /* also used by search strings for backoff */ 20 #ifdef TAINT 21 bool str_tainted; /* 1 if possibly under control of $< */ 22 #endif 23 };
  58. Perl3ςΫχοΫ • ଟ࣍ݩ഑ྻ͸࿈૝഑ྻΛ࢖ͬͯΤϛϡϨʔτ ͍ͯͨ͠ 1 %hash = (); 2 3

    $hash{'piyo','foo'} = "hoge"; 4 5 print "$hash{'piyo','foo'}\n"; • ࿈૝഑ྻͷ =>͸·ͩ࢖͑ͣ, ’΍”΋লུෆՄ
  59. Perl3ͷ಺෦ߏ଄ • Newzͱ͍͏ϚΫϩͰsafemalloc͞ΕΔ༷ʹ ͳͬͨ
 (Perl2·Ͱ͸ܕͷؔ਺಺Ͱmalloc͍ͯͨ͠)

  60. Perl4.0

  61. Perl4ͷมߋ఺ • 1991೥3݄21೔ϦϦʔε • ϓϩάϥϛϯάPerlग़൛ه೦ʹϦϦʔε͞Εͨ • bug fixͱίʔυͷվྑ͕ओ

  62. Perl4ͷมߋ఺ • MS-DOS,OS2ʹରԠ࢝͠ΊΔ • YaccͰจ๏Λఆ͍ٛͯͨ͠ϑΝΠϧ໊͕perl.y͔ Βperly.yʹमਖ਼͞ΕΔ • mainؔ਺΋perly.c͔Βperl.cʹमਖ਼ • ςετίʔυͷ֦ுࢠΛ”.t”ʹ౷Ұ

  63. Perl4ͷมߋ఺ • NDBM୯ମ͔ΒGNUͷDBϚωʔδϟʔͷGDBM ΋ϋογϡੜ੒࣌ʹαϙʔτ࢝͠ΊΔ • Time::LocalͷݪܕtimelocalϥΠϒϥϦ͕ύο έʔδʹՃΘΔ • SETREGIDͳͲͷϚΫϩͷ໊લ͕HAS_SETREGID ʹมߋ͞ΕΔ

  64. Perl4ͷࢥ͍ग़ • require͕ొ৔ • Ұ੪Λ෩ᴆͨ͠jcode.plͳͲ͕ొ৔ • ౰࣌ͷύοέʔδͷ۠੾Γ͸::Ͱ͸ͳ͘’
 &jcode::convert (Perl5)
 &jcode’convert

    (Perl4)
  65. Perl4/perl.h 1 typedef struct arg ARG; 2 typedef struct cmd

    CMD; 3 typedef struct formcmd FCMD; 4 typedef struct scanpat SPAT; 5 typedef struct stio STIO; 6 typedef struct sub SUBR; 7 typedef struct string STR; 8 typedef struct atbl ARRAY; 9 typedef struct htbl HASH; 10 typedef struct regexp REGEXP; 11 typedef struct stabptrs STBP; 12 typedef struct stab STAB; 13 typedef struct callsave CSV; • Perl4Ͱ͸
  66. Perl5.0

  67. Perl5 • େ͖͘Perl͕ॻ͖׵ΘΔ • ΦϖίʔυΛར༻ͨ͠ίϯύΠϧ+ΠϯλϓϦ λܕͷݴޠ΁ͱ੾ΓସΘΔ • PerlͷΦϖίʔυ͸ؔ਺ͱରԠ

  68. Perl5 • ϦϑΝϨϯε,blessొ৔ • strictϞʔυ͕ଘࡏ͍ͯ͠ͳ͍ͨΊ
 
 
 
 
 ͜Μͳॻ͖ํ΋ςετίʔυʹొ৔

    6 # Test real references. 7 8 $FOO = \$BAR; 9 $BAR = \$BAZ; 10 $BAZ = "ok 8\n"; 11 print $$$FOO;
  69. Perl5 • miniperl͕buildର৅ͱͯ͠ొ৔ • perlͷυΩϡϝϯτ͕man͔Βpodʹมߋ͞Ε
 miniperlΛར༻͠buildͨ͠pod2manΛར༻͠
 manΛੜ੒͢Δ༷ʹͳͬͨ • use,my,XS͕ొ৔

  70. Perl5ͷσʔλߏ଄ • ಺෦తʹεΧϥʔܕ͸SVܕʹඥ͚ͮ͞ΕΔ
 (ݱࡏͷPerl5ͱಉ༷ͷߏ଄) • όΠτίʔυΛ֨ೲ͢ΔOPܕͳͲ΋ొ৔ • Perl4·Ͱͱ͸ҟͳΓɼߏ଄ମ໊ͷେจࣈ͕ܕ ໊ͱͳ͍ͬͯΔ

  71. Perl5.0ͷSVܕ • ݱࡏͷPerl5ͱ͸த਎͕ҟͳΔ͕͓͓Αͦݪܕ ͕࡞ΒΕ͍ͯΔ 1 /* Using C's structural equivalence

    to help emulate C++ inheritance here... */ 2 3 struct sv { 4 void* sv_any; /* pointer to something */ 5 U32 sv_refcnt; /* how many references to us */ 6 U32 sv_flags; /* what we are */ 7 };
  72. perl.hͰtypedef͞Ε͍ͯΔ σʔλܕͷਪҠ • Perl1.0 • 9 • Perl2.0 • 11

    • Perl3.0 • 12 • Perl4.0 • 14 • Perl5.0 • 49
  73. Perl5.10 • featureϓϥάϚ͕ಋೖ͞ΕͨΓͱPerlͷసػ ͱͳͬͨόʔδϣϯͷ1ͭ • ͜ͷόʔδϣϯ͔ΒPerlͷtagͷ໋໊نଇ͕ม ߋ͞ΕΔ
 old: perl-5.95
 new:

    v5.10.0
  74. Perl5.03 • ͓͓ΑͦPerl5.003_01ͱPerl5.003_02ͷؒ
 ͘Β͍ʹAnaTofuZ͕஀ੜ͢Δ

  75. Perl5/perl.h 1 typedef struct Outrec Outrec; 2 typedef struct interpreter

    PerlInterpreter; 3 typedef struct ff FF; 4 typedef struct sv SV; 5 typedef struct av AV; 6 typedef struct hv HV; 7 typedef struct cv CV; 8 typedef struct regexp REGEXP; 9 typedef struct gp GP; 10 typedef struct sv GV; 11 typedef struct io IO; 12 typedef struct context CONTEXT; 13 typedef struct block BLOCK;
  76. ྺ࢙తͳPerlͷϙΠϯτ • ࠷ޙͷߦ຤ͷ;Λলུ͕okͱ͍͏ػೳ͸ແ͍ҝ
 ϫϯϥΠφʔͰ΋ perl -e ‘print “1\n”;’ͱ
 ηϛίϩϯ͕ඞਢ •

    versionΛݟΔʹ͸-vΦϓγϣϯ
 (௕͍Φϓγϣϯ͸ະରԠ)
  77. ػೳతͳൺֱ • 1ສͱ1ઍສͷFizzBuzzΛܭଌ • bytecodeʹམͱ͞ͳ͍෼
 ਺͕গͳ͍৔߹
 ॳظͷPerl͕ߴ଎ • ݅਺͕ଟ͍৔߹bytecode
 ʹམͱ͢Perl5͕ߴ଎

    5JUMF                     ສ ઍສ
  78. Perl6

  79. Perl6 • ເ͋;ΕΔݴޠ • NQPͱݺ͹ΕΔPerl6ͷαϒηοτͰPerl6͸ هड़͞Ε͍ͯΔ • ݱࡏ͸Rakudo͕΄΅ެࣜ • MoarVM,JVM,js,GraalVMͰಈ͘

  80. Perl6 • ࢓༷ͱ࣮૷͕ಉҰͩͬͨPerl5ͱҧ͍
 ࢓༷ͱ࣮૷͕෼཭͍ͯ͠Δ • ࢓༷͸http://design.perl6.org/ • ࣮૷తͳυΩϡϝϯτ͸
 https://docs.perl6.org/

  81. Rakudo • MoarVMͰ͸6modelͱ͍͏ΦϒδΣΫτγε ςϜΛ࠾༻͍ͯ͠Δ • ࠷ۙ͸JIT͕Α͘commit͞Ε͍ͯΔ •

  82. 231KͷϩάΞφϥΠζΛ͢Δ • Perl5 • 0.04s • Ruby • 0.15s •

    Python • 0.06s • Java • 0.27s • Perl6(Moar) • 0.86s • Perl6(JVM) • 21.48s
  83. 3GͷϩάΞφϥΠζΛ͢Δ • Perl5 • 41.35s • Ruby • 574.52s •

    Python • 101.16s • Java • 48.85s • Perl6(Moar) • 2331.08s • Perl6(JVM) • 1665.56s
  84. ·ͱΊ • Perl͸Perl5ͱPerl6Ͱେن໛ͳमਖ਼͕ೖͬͨ • ݴޠతʹ͸Perl1.0͔ΒPerl5͸៉ྷʹਐԽͯ͠ ͍͍ͬͯΔ •

  85. ػೳతͳൺֱ • 1ສͱ1ઍສͷFizzBuzzΛܭଌ • bytecodeʹམͱ͞ͳ͍෼
 ਺͕গͳ͍৔߹
 ॳظͷPerl͕ߴ଎ • ݅਺͕ଟ͍৔߹bytecode
 ʹམͱ͢Perl5͕ߴ଎

    5JUMF                        ສ ઍສ