Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Perlハッカーは息をするようにCPANモジュールを書く

typester
September 29, 2012

 Perlハッカーは息をするようにCPANモジュールを書く

YAPC::Asia 2012

typester

September 29, 2012
Tweet

More Decks by typester

Other Decks in Programming

Transcript

  1. 1FSMϋοΧʔ͸ଉΛ͢ΔΑ͏ʹ
    $1"/ϞδϡʔϧΛॻ͘
    !UZQFTUFS
    ,":"$*OD

    View full-size slide

  2. ࠓ೥͸਺೥ͿΓʹ࢓ࣄͰ1FSMΛ͹Γ
    ͹Γ͔͓ͭͬͯΓɺ

    View full-size slide

  3. ຊ౰ʹଉΛ͢ΔΑ͏ʹ1FSMϞδϡʔϧΛ
    ॻ͍͍ͯͨͳʔɺͱ͍͏͜ͱͰɺ

    View full-size slide

  4. ·ͣɺࠓ೥ॻ͍ͨϞδϡʔϧΛ
    ঺հ͠·͢

    View full-size slide

  5. %BUB"QQMF1SJDF5JFS

    View full-size slide

  6. %BUB"QQMF1SJDF5JFS
    w"QQ4UPSFͷQSJDFUJFS
    UJFS͕೔ຊͩͱˇɺͱ͍͏ͷΛม׵͢
    ΔϞδϡʔϧ

    View full-size slide

  7. %BUB"QQMF1SJDF5JFS
    w"QQ4UPSFͷQSJDFUJFS
    UJFS͕೔ຊͩͱˇɺͱ͍͏ͷΛม׵͢
    ΔϞδϡʔϧ
    wಈػ
    wඞཁʹഭΒΕͯ
    wIUUQTQBCFSJTINF

    View full-size slide

  8. %BUB.FTTBHF1BDL4USFBN

    View full-size slide

  9. %BUB.FTTBHF1BDL4USFBN
    w.FTTBHF1BDLͷετϦʔϛϯάύʔαʔ

    View full-size slide

  10. %BUB.FTTBHF1BDL4USFBN
    w.FTTBHF1BDLͷετϦʔϛϯάύʔαʔ
    wಈػ
    w%BUB.FTTBHF1BDLͷιʔείʔυ͕
    ೉͗ͨ͢͠
    w͙͢ʹཉ͔ͬͨ͠

    View full-size slide

  11. %BUB9-491BSTFS

    View full-size slide

  12. %BUB9-491BSTFS
    wߴ଎ͳYMTYϑΝΠϧύʔαʔ

    View full-size slide

  13. %BUB9-491BSTFS
    wߴ଎ͳYMTYϑΝΠϧύʔαʔ
    wಈػ
    w4QSFBETIFFU9-49͕ϝϞϦΛ৯͍ա
    ͗ͯཁ݅ΛΫϦΞͰ͖ͳ͔ͬͨ
    w1ZUIPOʹྑ͍࣮૷͕͋ͬͨͷͰͦΕΛҠ

    View full-size slide

  14. 4VC3BUF
    w֬཰͕͔ΒΉॲཧΛྑ͍ײ͡ʹ͍ͨ͠ͱ͖ʹ
    ࢖͏Ϟδϡʔϧ

    View full-size slide

  15. 4VC3BUF
    w֬཰͕͔ΒΉॲཧΛྑ͍ײ͡ʹ͍ͨ͠ͱ͖ʹ
    ࢖͏Ϟδϡʔϧ
    wಈػ
    w͜͏͍͏ͷ͕ཉ͔ͬͨ͠

    View full-size slide

  16. 4VC&YDFQUJPO

    View full-size slide

  17. 4VC&YDFQUJPO
    wྫ֎ॲཧΛมΘͬͨײ͡Ͱॻ͚ΔϞδϡʔϧ

    View full-size slide

  18. 4VC&YDFQUJPO
    wྫ֎ॲཧΛมΘͬͨײ͡Ͱॻ͚ΔϞδϡʔϧ
    wಈػ
    w͜͏͍͏ͷ͕ཉ͔ͬͨ͠ɺ͍ͬͯ͏Θ͚Ͱ
    ͸ͳͯ͘ͳΜͱͳ͘ࢥ͍͍͔ͭͨΒ

    View full-size slide

  19. 5FTU3FEJT4FSWFS

    View full-size slide

  20. 5FTU3FEJT4FSWFS
    w5FTUNZTRMEͷSFEJTόʔδϣϯ

    View full-size slide

  21. 5FTU3FEJT4FSWFS
    w5FTUNZTRMEͷSFEJTόʔδϣϯ
    wಈػ
    wඞཁʹഭΒΕͯ

    View full-size slide

  22. +40/5ZQFT
    w+40/Λ࡞Δͱ͖ʹ਺஋Խͨ͠Γ͢Δͱ͖ʹ
    OVNCFSΈ͍ͨͳṖͷϋοΫ͢Δͷ
    ͸͍΍ͩͳʔ͍ͬͯ͏ͷΛͳΜͱ͔͢ΔͨΊ
    ͚ͩͷϞδϡʔϧ

    View full-size slide

  23. $PDPB#BUUFSZ*OGP

    View full-size slide

  24. $PDPB#BUUFSZ*OGP
    w.BDͰόοςϦʔ৘ใΛऔಘͨ͠Γɺόος
    Ϧʔؔ܎ͷΠϕϯτΛίʔϧόοΫͰऔಘͰ
    ͖ΔϞδϡʔϧ

    View full-size slide

  25. $PDPB#BUUFSZ*OGP
    w.BDͰόοςϦʔ৘ใΛऔಘͨ͠Γɺόος
    Ϧʔؔ܎ͷΠϕϯτΛίʔϧόοΫͰऔಘͰ
    ͖ΔϞδϡʔϧ
    wಈػ
    wόοςϦʔܥϥΠϑϋοΫʹඞཁͩͬͨ

    View full-size slide


  26. w$PDPB$PSF#MVFUPPUI

    View full-size slide


  27. w$PDPB$PSF#MVFUPPUI
    w$PDPB"QQMF4DSJQU

    View full-size slide


  28. w$PDPB$PSF#MVFUPPUI
    w$PDPB"QQMF4DSJQU
    wಈػ
    w:"1$"TJB

    View full-size slide

  29. όʔδϣϯΞοϓ΍طଘϞδϡʔϧͷ
    ϝϯςφϯε΋͋ΔͷͰTIJQJUճ਺
    ͸਺͑੾Εͳ͍

    View full-size slide

  30. ଉΛٵ͏Α͏ʹϞδϡʔϧΛॻ͖ɺ

    View full-size slide

  31. ଉΛ͸͘Α͏ʹTIJQJU͢Δ

    View full-size slide

  32. ͦΕ͸1FSMϋοΧʔʹ͸ࣗવͳ͜ͱ

    View full-size slide

  33. $1"/ʹΞοϓ͢Δͱ
    ͍ΖΜͳϝϦοτ͕͋Δ

    View full-size slide

  34. Πϯετʔϧ͕؆୯
    DQBON.Z.PEVMF

    View full-size slide

  35. QBUDIFT DPOUSJCVUJPOTGSPN
    PUIFSQFPQMF

    View full-size slide

  36. ࠶ར༻ͦ͠͏ͳ΋ͷ͸શ෦$1"/ʹ
    ͋͛ͪΌ͏
    wDQBONͰ؆୯ʹೖΔ͔Βɺࣗ෼ࣗ਎΋ଞͷ
    ͱ͜ΖͰ࢖͏ͷָ͕ʹ
    w$1"/ίϛϡχςΟʔʹΑͬͯΫΦϦςΟ͕
    ্͕Δ

    View full-size slide

  37. Ͱ΋ͳΜ͔มͳͷΞοϓ͢Δͱ
    UPLV˓JSPNͱ͔ʹ%*4ΒΕΔ͠ʜ

    View full-size slide

  38. /0ͦΜͳ͜ͱ͸ͳ͍ʂ

    View full-size slide

  39. 5IFSFJTNPSFUIBOPOFXBZ
    UPEPJU

    View full-size slide

  40. υΩϡϝϯτΛॻ͜͏

    View full-size slide

  41. ͦͷϞδϡʔϧΛ࡞ͬͨ೤͍૝͍Λ
    υΩϡϝϯτʹॻ͜͏ʂ

    View full-size slide

  42. υΩϡϝϯτͬͯͷ͸Ϟδϡʔϧͷ
    ࢖͍ํΛॻ͚ͩ͘ͷ෺͡Όͳ͍

    View full-size slide

  43. ͦͷϞδϡʔϧʹ͍ͨ͢Δ૝͍Λશ෦
    Ϳ͚ͭΔͱ͜ΖͳΜͩʂ

    View full-size slide

  44. ˞%*4ΒΕϙΠϯτΛ͋Β͔͡Ί཈͓͑ͯ͘͜ͱ͸ϞώΧϯରࡦͱͯ͠ඇৗʹ༗ޮͰ͢

    View full-size slide

  45. υΩϡϝϯτ࡞੒ͷͭ͜
    wQPEܗࣜ͸׳Εͳ͍ͱ͸ࢥ͍·͚͢Ͳɺ͜Ε
    ͸͚ͩ͸֮͑Δ͔͠ͳ͍
    w׳Εͳ͍͏ͪ͸ਓͷΛਅࣅͨ͠Βྑ͍
    wॻ͖·͍ͬͯͨ͘Βͦͷ͏ͪͳʹ΋ݟͳ͍Ͱ
    ΋ී௨ʹ͔͚ΔΑ͏ʹͳΓ·͢

    View full-size slide

  46. υΩϡϝϯτ࡞੒ͷͭ͜
    wॻ͘΂͖಺༰

    View full-size slide

  47. υΩϡϝϯτ࡞੒ͷͭ͜
    wॻ͘΂͖಺༰
    w4:/014*4ͬ͘͞Γͨ͠࢖͍ํͷίʔυ

    View full-size slide

  48. υΩϡϝϯτ࡞੒ͷͭ͜
    wॻ͘΂͖಺༰
    w4:/014*4ͬ͘͞Γͨ͠࢖͍ํͷίʔυ
    w%&4$3*15*0/೤͍૝͍

    View full-size slide

  49. υΩϡϝϯτ࡞੒ͷͭ͜
    wॻ͘΂͖಺༰
    w4:/014*4ͬ͘͞Γͨ͠࢖͍ํͷίʔυ
    w%&4$3*15*0/೤͍૝͍
    w.&5)0%4'6/$5*0/4
    ֤ϝιουɺؔ਺Λઆ໌

    View full-size slide

  50. $1"/Ϟδϡʔϧ࡞੒ͷϙΠϯτ

    View full-size slide

  51. $1"/Ϟδϡʔϧ࡞੒ͷϙΠϯτ
    wΧδϡΞϧʹ࡞ͬͯྑ͍͚ͲɺυΩϡϝϯτ
    ͸͔ͬ͠Γॻ͜͏

    View full-size slide

  52. $1"/Ϟδϡʔϧ࡞੒ͷϙΠϯτ
    wΧδϡΞϧʹ࡞ͬͯྑ͍͚ͲɺυΩϡϝϯτ
    ͸͔ͬ͠Γॻ͜͏
    w্͛ͨҎ্͸ϝϯςφϯεΛܧଓ͠·͠ΐ͏

    View full-size slide

  53. $1"/Ϟδϡʔϧ࡞੒ͷϙΠϯτ
    wΧδϡΞϧʹ࡞ͬͯྑ͍͚ͲɺυΩϡϝϯτ
    ͸͔ͬ͠Γॻ͜͏
    w্͛ͨҎ্͸ϝϯςφϯεΛܧଓ͠·͠ΐ͏
    w%*4͸༑ୡͰ͢ʂ

    View full-size slide

  54. HJUIVCʹ຾ͬͯΔϞδϡʔϧ
    ͋ͬͨΓ͠·ͤΜ͔ʁ

    View full-size slide

  55. ා͘ͳ͍͔ΒΞοϓͯ͠ΈΑ͏ʂ

    View full-size slide