Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
🕗Perlの時間はモジュールで #perlwakate
Search
koluku
July 01, 2020
Programming
0
1.2k
🕗Perlの時間はモジュールで #perlwakate
2020/07/01 にオンラインで開催された 「Perl若手の会(
https://connpass.com/event/179235/)」でのLT資料です
koluku
July 01, 2020
Tweet
Share
More Decks by koluku
See All by koluku
asdf-ecspresso作って 友達が増えた話 / Fujiwara Tech Conference 2025
koluku
0
4.1k
日常業務のカイゼンで図る開発チームへの貢献 - YAPC::Kyoto 2023
koluku
4
2k
Other Decks in Programming
See All in Programming
個人軟體時代
ethanhuang13
0
320
Oracle Database Technology Night 92 Database Connection control FAN-AC
oracle4engineer
PRO
1
450
Kiroで始めるAI-DLC
kaonash
2
590
AI Coding Agentのセキュリティリスク:PRの自己承認とメルカリの対策
s3h
0
230
Compose Multiplatform × AI で作る、次世代アプリ開発支援ツールの設計と実装
thagikura
0
160
testingを眺める
matumoto
1
140
Processing Gem ベースの、2D レトロゲームエンジンの開発
tokujiros
2
130
旅行プランAIエージェント開発の裏側
ippo012
2
910
Tool Catalog Agent for Bedrock AgentCore Gateway
licux
6
2.5k
もうちょっといいRubyプロファイラを作りたい (2025)
osyoyu
1
440
HTMLの品質ってなんだっけ? “HTMLクライテリア”の設計と実践
unachang113
4
2.9k
How Android Uses Data Structures Behind The Scenes
l2hyunwoo
0
460
Featured
See All Featured
GraphQLの誤解/rethinking-graphql
sonatard
72
11k
Unsuck your backbone
ammeep
671
58k
The Pragmatic Product Professional
lauravandoore
36
6.9k
The Invisible Side of Design
smashingmag
301
51k
Product Roadmaps are Hard
iamctodd
PRO
54
11k
Facilitating Awesome Meetings
lara
55
6.5k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.5k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
285
13k
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
Embracing the Ebb and Flow
colly
87
4.8k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
656
61k
Build your cross-platform service in a week with App Engine
jlugia
231
18k
Transcript
Perlͷ࣌ؒϞδϡʔϧͰ Perlएखͷձ 2020-07-01 @koluku
ࣗݾհ • koluku ʢίϧΫʣ • एख, Perlܦݧ2ϲ݄, ొஃܦݧແ͠ • Python/Go͕ϝΠϯ
͢͜ͱɾ͞ͳ͍͜ͱ • ͢͜ͱ • ࣌ؒͷ੍ޚͷ͋Ε͜Ε • Time::Pieceָ͕ͩΑ • ͞ͳ͍͜ͱ •
࣮ͷ
$^T • ʮϓϩάϥϜΛ࣮ߦ։࢝ͨ࣌͠ࠁΛɺلݩ (1970ͷ࢝Ί) ͔Βͷඵ Ͱ ࣔͨ͠ͷͰ͢ʯ • لݩ (1970ͷ࢝Ί)
ͬͯԿΑʁ
time • ʮ΄ͱΜͲͷγεςϜͰلݩUTC19701݄100:00:00Ͱ͢; ಛతͳྫ֎ͱͯ͠ɺݹ͍MacOSͰϩʔΧϧλΠϜκʔϯͷ 19041݄100:00:00Λلݩͱ͍ͯ͠·͢ɻʯ • UTC19701݄100:00:00͍ΘΏΔUNIX࣌ؒ • UTC19041݄100:00:00͏Δ͏ͷྫ֎ճආͷͨΊͷ •
1904͔Β2096·Ͱ͏Δ͏ଘࡏ͢Δ
$^Tͱtime • ͲͪΒγεςϜ࣌ؒΛฦ͢ͷͰ࣮࣭ಉ͡ • ݱࡏ࣌ؒΛΖ͏ʹUNIX࣌ؒʢඵʣͰฦ͞ΕΔͷͰී௨ʹѻ ͑ͳ͍ • ͦ͜ͰlocaltimeͱgmtimeΛ͏
localtime • ʮtime͕ؔฦ࣌͢ࠁΛɺϩʔΧϧͳλΠϜκʔϯͰଌͬͨ࣌ࠁͱ͠ ͯɺ9ཁૉͷྻʹม͠·͢ɻී௨ɺҎԼͷΑ͏ʹ͍ͯ͠·͢:ʯ • $wday༵Λ0ͱ༵ͨ͠ɺ $yday ͦͷͷԿ͕ؼͬͯ͘ Δ •
εΧϥʔͷͱ͖ʹѻ͏ͱจࣈྻͰؼͬͯ͘Δ • ศརʂ
gmtime • localtimeͩͱϚγϯͷ࣌ؒʹґଘ͢ΔͨΊຊͩͱGMT+9:00 • άϦχοδඪ४࣌ʹ͢ʹ-9࣌ؒ͢Δඞཁ͕… • localtimeͱಉ͡ΈͰάϦχοδඪ४࣌Λѻ͏gmtime͕͋ΔͷͰ ҆৺ʂ
localtimeͱgmtimeͷ᠘ • ʮ$year 1900 ͔ΒͷΛ࣋ͪ·͢ɻʯ • ਓ͕ؒಡΈ͍͢Α͏ʹԼೋܻͰஅͰ͖Δ։࢝ͷͨΊ • ͍ΘΏΔPOSIX४ڌ
• ͚ͩͰݟΔͱ3ύλʔϯ͋Δ
localtimeɺศརʹศརͳΜ͚ͩͲ… • ใ͔͠ͳ͍͔Βѻ͏ʹ݁ہؔΛ࡞Δඞཁ͕͋Δ • ศརϝιου͕ੜ͑ͨΦϒδΣΫτͰฦͯ͠΄͘͠ͳ͍ʁ
Time::Piece • Timepiece࣌ܭͱ͍͏ҙຯ • localtime, gmtime͕Time::PieceΦϒδΣΫτͰؼͬͯ͘Δ • ཉ͍͠ػೳେମἧ͍ͬͯΔ
Time::PieceͰՃࢉɾݮࢉ • Time::SecondsͰ1ʢONE_MINUTEʣͳͲͷఆ͕ٛݺͼग़ͤΔ • Time::PieceʹTime::SecondsͰՃࢉɾݮࢉ͢Δ͜ͱ͕Ͱ͖Δ • localtime + ONE_DAY •
Time::Pieceಉ࢜Ͱݮࢉ͢ΔͱTime::SecondsͰؼͬͯ͘Δʢඵʣ • localtime - gmtime
Time::PieceͰൺֱ • Time::Pieceಉ࢜Ͱൺֱ͢ΔࣄͰ͖Δ • return if (localtime - gmtime ==
ONE_HOUR * 9); • Time::Pieceศར͗͢ͳ͍ʁ
ͰͲ͏ͬͯՃࢉൺֱΛͯ͠Δʁ • ͪΐͬͱدΓಓ • Α͘ߟ͑ͨΒTime::PieceΦϒδΣΫτ͔ͩΒී௨ͷԋࢉࢠͰܭࢉ Ͱ͖Δͷ͓͔͍͠
͜͏͍͏ͱ͖ίʔυΛಡΉͷ͕ૣ͍ • ͱ͏͍͏͜ͱͰmeta::cpan͔ΒBrowseͰίʔυΛݟͯΔͱ Time::Seconndsʹoverloadͱ͍͏໊લ͕ग़ͯ͘Δ
overload • perldoc.jpΛݟͯΈΔͱʮPerl ͷԋࢉࢠͷΦʔόʔϩʔυΛߦ͏ύο έʔδʯͱ͋Δ • ͭ·Γࢉज़ԋࢉࢠൺֱԋࢉࢠΛผͷؔʹ্ॻ͖Ͱ͖Δ • Time::SecondsͰ+ԋࢉࢠͷ߹ࠨӈ͔ΒΛऔͬͯؔʹೖΕͯ ܭࢉͨ͠ͷΛฦ͍ͯ͠Δ
• ͳΔ΄ͲͶ
Ͱେମѻ͍͍ͨͷMySQLͷͱ͖… • ͬͯɺ࣌ؒͱ͍͑MySQLͰͷѻ͍ͳ͔ͳ͔໘ • fracʢখҎԼʣ͕Ճ͞Ε͍ͯΔ͜ͱ͋Δ • DATETIMEͱTIMESTAMPಉ͡ϑΥʔϚοτͰɺ • αϙʔτ͞Ε͍ͯΔൣғ͕ڱ͍, DATETIME݄ɾʹ00Λڐ༰
• ಉ͡Ͱҧ͏Ͱొ͞ΕΔ͕࣌͋Δ • ͜Μͳͷී௨ʹѻ͍ͨ͘ͳ͍ʂ
Time::Piece::MySQL • Time::Pieceͷ֦ுϝιου • Time::Piece->mysql_dateͰMySQLͷDATEܕʹม • Time::Piece->from_mysql_date($datetime)ͰMySQLͷDATEܕ͔Β Time::PieceΦϒδΣΫτʹม • ͜ΕͰMySQLͰͷ࣌ؒͷॲཧʹۤ࿑͢Δ͜ͱͳ͘ͳͬͨ…ʂ
ͬͨʂੈքʹฏ͕๚ΕͨʂͰ… • ϛϦඵɾϚΠΫϩඵͷѻ͍Ͳ͏͢Δͷʁ • ϓϩάϥϜͷ࣮ߦ࣌ؒΛѻ͍͍ͨΜ͚ͩͲ • Q: Ұఆ࣌ؒॲཧΛsleepͤ͞Δʹ • Λྐྵʹม͍ͨ͠
• ͷൣғʹ͋Δ͔Ͳ͏͔Λָʹܭࢉ͍ͨ͠ • ຊҎ֎ͷ࣌ࠁΛϩέʔϧ͍ͨ͠ • ҧ͏ϩέʔϧ࣌ؒͲ͏͠ͰࠩΛग़͍ͨ͠ • etc…
͝ΊΜʂLT͡Ό࣌ؒΓͳ͍͔Β ࣗͰௐͯʂ