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.6k
日常業務のカイゼンで図る開発チームへの貢献 - YAPC::Kyoto 2023
koluku
4
2.1k
Other Decks in Programming
See All in Programming
DevFest Android in Korea 2025 - 개발자 커뮤니티를 통해 얻는 가치
wisemuji
0
180
HTTPプロトコル正しく理解していますか? 〜かわいい猫と共に学ぼう。ฅ^•ω•^ฅ ニャ〜
hekuchan
2
640
組み合わせ爆発にのまれない - 責務分割 x テスト
halhorn
1
190
副作用をどこに置くか問題:オブジェクト指向で整理する設計判断ツリー
koxya
1
400
例外処理とどう使い分ける?Result型を使ったエラー設計 #burikaigi
kajitack
16
5.3k
メルカリのリーダビリティチームが取り組む、AI時代のスケーラブルな品質文化
cloverrose
2
470
生成AIを利用するだけでなく、投資できる組織へ
pospome
2
440
Combinatorial Interview Problems with Backtracking Solutions - From Imperative Procedural Programming to Declarative Functional Programming - Part 2
philipschwarz
PRO
0
140
Vibe codingでおすすめの言語と開発手法
uyuki234
0
180
AI Agent Dojo #4: watsonx Orchestrate ADK体験
oniak3ibm
PRO
0
130
ThorVG Viewer In VS Code
nors
0
670
[AtCoder Conference 2025] LLMを使った業務AHCの上⼿な解き⽅
terryu16
6
1k
Featured
See All Featured
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
0
200
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
130
How GitHub (no longer) Works
holman
316
140k
Building the Perfect Custom Keyboard
takai
2
670
A Modern Web Designer's Workflow
chriscoyier
698
190k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.3k
Build The Right Thing And Hit Your Dates
maggiecrowley
38
3k
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
280
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
140
What does AI have to do with Human Rights?
axbom
PRO
0
1.9k
The Limits of Empathy - UXLibs8
cassininazir
1
200
Building a A Zero-Code AI SEO Workflow
portentint
PRO
0
240
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͡Ό࣌ؒΓͳ͍͔Β ࣗͰௐͯʂ