SlideShare a Scribd company logo
Submit Search
Upload
Login
Signup
YAPC::KANSAI 2017 LT
Report
maka2donzoko
Follow
Mar. 6, 2017
•
0 likes
•
1,067 views
1
of
86
YAPC::KANSAI 2017 LT
Mar. 6, 2017
•
0 likes
•
1,067 views
Download Now
Download to read offline
Report
Technology
YAPC::KANSAI 2017 OSAKA のLT
maka2donzoko
Follow
Recommended
ctagsでvimにひきこもる
Takaaki Hirano
1.7K views
•
12 slides
PFDS 8.4.3 Real-Time Deques
昌平 村山
545 views
•
19 slides
Common LispでGPGPU
gos-k
1.1K views
•
22 slides
Oneliner
NNCT programming study group
355 views
•
31 slides
前期講座09
Takenori Nakagawa
573 views
•
20 slides
mlr-grep - レコード指向grep
Ryoichi KATO
980 views
•
19 slides
More Related Content
What's hot
kagamicomput201806
swkagami
266 views
•
25 slides
EmacsとGlossでお絵描きしてみるよ
Kiwamu Okabe
2.5K views
•
11 slides
C++のビルド高速化について
AimingStudy
6.7K views
•
15 slides
Goをカンストさせる話
Moriyoshi Koizumi
6.4K views
•
25 slides
VRボドゲ実装の話
MaxNeetGames
2.2K views
•
38 slides
python-geohex
遼 会田
748 views
•
28 slides
What's hot
(15)
kagamicomput201806
swkagami
•
266 views
EmacsとGlossでお絵描きしてみるよ
Kiwamu Okabe
•
2.5K views
C++のビルド高速化について
AimingStudy
•
6.7K views
Goをカンストさせる話
Moriyoshi Koizumi
•
6.4K views
VRボドゲ実装の話
MaxNeetGames
•
2.2K views
python-geohex
遼 会田
•
748 views
3次元図形をSchemeで造ろう!
vi-iv
•
1.8K views
Rubyの御先祖CLUのお話(原本)
洋史 東平
•
1.5K views
Ag and ack
Joe_noh
•
919 views
Incanterの紹介
mozk_
•
1.7K views
こわくないScala vol.2
FScoward
•
439 views
Nginx lua
Moriyoshi Koizumi
•
14.3K views
20130216 シェル芸爆破デスマッチ勉強会
Ryuichi Ueda
•
14.6K views
HPC Phys-20201203
MITSUNARI Shigeo
•
2.8K views
Intro to SVE 富岳のA64FXを触ってみた
MITSUNARI Shigeo
•
11.5K views
Viewers also liked
オープンデータを利用したWebアプリ開発
dokechin
4.5K views
•
31 slides
CGI Perlでわかる!サーバレス
Tatsuro Hisamori
203.3K views
•
25 slides
Perl ウェブ開発の中世〜CGI と Plack の間〜
鉄次 尾形
8.7K views
•
66 slides
メールフォームからメールを送る近代的な方法 | YAPC::Kansai 2017 OSAKA
azumakuniyuki 🐈
6.7K views
•
52 slides
Ranking system by Elasticsearch
Kazuhiro Osawa
2.8K views
•
50 slides
Hokkaido.pm#13参加報告 | YAPC::Kansai 2017 Osaka
azumakuniyuki 🐈
877 views
•
38 slides
Viewers also liked
(20)
オープンデータを利用したWebアプリ開発
dokechin
•
4.5K views
CGI Perlでわかる!サーバレス
Tatsuro Hisamori
•
203.3K views
Perl ウェブ開発の中世〜CGI と Plack の間〜
鉄次 尾形
•
8.7K views
メールフォームからメールを送る近代的な方法 | YAPC::Kansai 2017 OSAKA
azumakuniyuki 🐈
•
6.7K views
Ranking system by Elasticsearch
Kazuhiro Osawa
•
2.8K views
Hokkaido.pm#13参加報告 | YAPC::Kansai 2017 Osaka
azumakuniyuki 🐈
•
877 views
2017年春のPerl
charsbar
•
10K views
First step of Performance Tuning
risou
•
1.3K views
Yapcasia2015 lt
maka2donzoko
•
763 views
レガシーな Perl システムに DDD (ドメイン駆動設計)を取り入れる
sairoutine
•
3.9K views
Twitterの被ブロック数可視化ツールを作ってみた
おさ OSA
•
15.4K views
YAPC::Kansai 2017 - macOSネイティブアプリ作成におけるPerlの活用
純生 野田
•
2K views
Rejectcon2015 わが青春の愛スレッド~さよなら哀スレッド
maka2donzoko
•
352 views
H2O x mrubyで人はどれだけ幸せになれるのか
Ichito Nagata
•
13.6K views
YAPC::Asia 2014 LT
maka2donzoko
•
964 views
YAPC::Asia 2013 LT資料「Perl同人活動の報告」
maka2donzoko
•
730 views
LTThon 地域PM Meetupでの資料 - YAPC::Asia 2012
maka2donzoko
•
881 views
Hachiojipm20111203
maka2donzoko
•
648 views
Lei atuação do psicólogo no cras
Lívia Piccolo
•
521 views
Magazine des programme immobiliers neufs à Nantes
Fanny Rousselon
•
269 views
More from maka2donzoko
地域PM紹介型ボードゲーム「PM(ぷむ)からの野望」の考案と実践
maka2donzoko
1.1K views
•
82 slides
同人活動の 報告と今後の展望 - YAPC::Asia 2021 LT
maka2donzoko
1.5K views
•
45 slides
同人ボードゲーム「やっぱしぃYAPC」の考案と実践
maka2donzoko
1.7K views
•
71 slides
LT @YAPC::Asia 2012 LTThon
maka2donzoko
5.4K views
•
80 slides
Hachiojipm20120128
maka2donzoko
543 views
•
15 slides
Lt
maka2donzoko
1.2K views
•
23 slides
More from maka2donzoko
(7)
地域PM紹介型ボードゲーム「PM(ぷむ)からの野望」の考案と実践
maka2donzoko
•
1.1K views
同人活動の 報告と今後の展望 - YAPC::Asia 2021 LT
maka2donzoko
•
1.5K views
同人ボードゲーム「やっぱしぃYAPC」の考案と実践
maka2donzoko
•
1.7K views
LT @YAPC::Asia 2012 LTThon
maka2donzoko
•
5.4K views
Hachiojipm20120128
maka2donzoko
•
543 views
Lt
maka2donzoko
•
1.2K views
Perl Monger Card Game
maka2donzoko
•
1.5K views
Recently uploaded
松下研究室紹介_関西大学高槻キャンパスオープンキャンパス
Matsushita Laboratory
27 views
•
23 slides
MLOps Course Slides_JP(配布用).pdf
Yuya Yamamoto
40 views
•
31 slides
20230921_IoTLT_vol103_kitazaki_v1.pdf
Ayachika Kitazaki
159 views
•
16 slides
GraphQLはどんな時に使うか
Yutaka Tachibana
11 views
•
37 slides
拡散する画像生成.pdf
NTTDOCOMO-ServiceInnovation
44 views
•
38 slides
テスト自動化.pdf
ssuserf8ea02
25 views
•
26 slides
Recently uploaded
(12)
松下研究室紹介_関西大学高槻キャンパスオープンキャンパス
Matsushita Laboratory
•
27 views
MLOps Course Slides_JP(配布用).pdf
Yuya Yamamoto
•
40 views
20230921_IoTLT_vol103_kitazaki_v1.pdf
Ayachika Kitazaki
•
159 views
GraphQLはどんな時に使うか
Yutaka Tachibana
•
11 views
拡散する画像生成.pdf
NTTDOCOMO-ServiceInnovation
•
44 views
テスト自動化.pdf
ssuserf8ea02
•
25 views
CatBoost on GPU のひみつ
Takuji Tahara
•
528 views
IGDA Japan SIG Audio #20-1 室内・野外でのマイク収録と整音.pdf
IGDA Japan SIG-Audio
•
113 views
CCoE実践者コミュニティ#1_CCoEが進めるセキュリティカイゼンの旅.pptx
Tomoaki Tada
•
55 views
画像生成AIの問題点
iPride Co., Ltd.
•
10 views
2023情報処理学会関西支部大会-G12.pdf
KoseiShimoda1
•
7 views
遠隔お酌IoTLT2309.pptx
Yoshiaki Ito
•
140 views
YAPC::KANSAI 2017 LT
1.
YAPC::Kansai 2017 OSAKA
LT まかまか般若波羅蜜@どんぞこ楽屋 所属:国際展示場前.pm 驚くべきことに Perlの話
2.
驚くべきことに Perlの話 2 / 244
3.
驚くべきことに 3 / 244
4.
LTに応募したことが 記憶になかった 4 / 244
5.
第一部 某slackにて
6.
6 / 244
7.
Time::Piece 日時を扱う Perlのコアモジュール 7 / 244
8.
8 / 244
10.
my $t =
Time::Piece->new $t->yyyymmdd; # 20170304 10 / 244
11.
$t->yyyy-mm-dd(); # 2017-03-04 $t->dd-mm-yyyy();
# 04-03-2017 etc. 11 / 244
12.
$t->yyyy-mm-dd(); # 2017-03-04 $t->dd-mm-yyyy();
# 04-03-2017 etc. Perlのメソッドは ハイフンとか使えないから 無理ゲーよね、と
13.
……ん? 13 / 244
14.
できる! できるぞ! 14 / 244
15.
overload 15 / 244
16.
overload 演算子オーバーロード 16 / 244
17.
package Foo; overload ( ‘+’
=> sub { ... }, ‘-’ => sub { ... }, ); ... my $foo = Foo->new; $foo + 1; 3 - $foo; $foo--;
18.
方針: yyyy, mm, ddをインポート それらの関数は-や/をoverloadした オブジェクトを返す 18
/ 244
19.
package Time::Piece::YYYYMMDD; use strict; use
warnings; BEGIN { require Exporter; our @ISA = qw(Exporter); our @EXPORT = qw(mm dd yyyy); } use parent 'Time::Piece'; 19 / 244
20.
sub yyyy { _make_obj('%Y',
shift); } sub mm { _make_obj('%m', shift); } sub dd { _make_obj('%d', shift); } 20 / 244
21.
sub _make_obj { my
($type, $obj) = @_; if ( defined $obj ) { if ( $obj->isa('Time::Piece::YYYYMMDD::Object') ) { push @{$obj->{types}}, $type; return $obj; } else { # $obj is a Time::Piece::YYYYMMDD bless { t => $obj, types => [$type] }, 'Time::Piece::YYYYMMDD::Object'; } } else { bless { t => undef, types => [$type] }, 'Time::Piece::YYYYMMDD::Object'; } } 21 / 244
22.
package Time::Piece::YYYYMMDD::Object; use overload
( '-' => _kigo('-'), '/' => _kigo('/'), ); 22 / 244
23.
BEGIN { sub _kigo
{ my ( $kigo ) = @_; return sub { # オーバーロードされた演算子で呼ばれる my ( $self, $other, $swap ) = @_; my $t = $self->{t}; my $type = $self->{type}; if ($swap) { push @{ $self->{types} }, $kigo; return $self; } else { push @{ $other->{types} }, $kigo; } my @types = (@{$self->{types}}, reverse(@{$other->{types}})); return $t->strftime(join('', @types)); }; } }
24.
use Time::Piece::YYYYMMDD; my $t
= Time::Piece::YYYYMMDD->new; $t->yyyy-mm-dd; 24 / 244
25.
use Time::Piece::YYYYMMDD; my $t
= Time::Piece::YYYYMMDD->new; $t->yyyy-mm-dd; #### $ perl -MO=Deparse test.pl 25 / 244
26.
use Time::Piece::YYYYMMDD; my $t
= Time::Piece::YYYYMMDD->new; $t->yyyy-mm-dd; #### $ perl -MO=Deparse test.pl $t->yyyy - mm(-dd()); 26 / 244
27.
$t->yyyy - mm(-dd()); dd()
が呼ばれ%Dをスタックに積んだオブジェクト返す -が呼ばれ – をさっきのオブジェクトのスタックに積む mm() が呼ばれ%Mをスタックに積む -が呼ばれ – をスタックに積む。さらに yyyy() で返されたオブジェクトを引数で受けてるので ここまでの情報が積まれたオブジェクトとがっちゃんこ 27 / 244
28.
いい感じになるので $VAR1 = [ '%Y', '-', '%m', '-', '%d' ]; これを
strftime に渡す 28 / 244
29.
say $t->yyyy-mm-dd; say $t->mm-dd; say
$t->yyyy-mm; say $t->dd-mm-yyyy; say $t->mm/dd; 29 / 244
30.
say $t->yyyy-mm-dd; 2017-03-04 say $t->mm-dd; 03-04 say
$t->yyyy-mm; 2017-03 say $t->dd-mm-yyyy; 04-03-2017 say $t->mm/dd; 03/04 30 / 244
31.
やったー! 31 / 244
32.
……ん? 32 / 244
33.
say $t->yyyy-mm-dd; 2017-03-04 say $t->mm-dd; 03-04 say
$t->yyyy-mm; 2017-03 say $t->dd-mm-yyyy; 04-03-2017 say $t->mm/dd; 03/04 33 / 244
34.
say $t->mm/dd; 03/04 34 /
244
35.
say $t->mm/dd; 03/04 say $t->yyyy/mm/dd; ...? 35
/ 244
36.
say $t->yyyy/mm/dd; Search pattern
not terminated 36 / 244
37.
say $t->yyyy/mm/dd; Search pattern
not terminated TerminateしないのにThe END 37 / 244
38.
第一部 完
39.
39 / 244
40.
40 / 244
41.
41 / 244
42.
41 / 244
43.
41 / 244
44.
51 / 244
45.
51 / 244
46.
51 / 244
47.
80 / 244
48.
80 / 244
49.
80 / 244
50.
100 / 244
51.
100 / 244
52.
100 / 244
53.
100 / 244
54.
100 / 244
55.
100 / 244
68.
第二部 昨年のPerlの同人活動 (2016年夏・冬コミ)
69.
Acme大全2016 231 / 244
70.
Acme大全2016 232 / 244
71.
Acme大全2016 615個の Acmeモジュール 233 / 244
72.
昔Parumonっていう Perl Monger なりきりカードゲーム をつくったよ 234 /
244
73.
納期が襲ってくるので CPANモジュールを 駆使して進捗を 達成する協力型ゲーム 235 / 244
75.
ボードゲームに 移植したよ 237 / 244
77.
デバッグしないで 公開したから メッチャ ゲームバランス悪い
78.
一番の問題点は 納期が襲ってこない 240 / 244
79.
穏やかなゲームになった 241 / 244
80.
なお、会場でこのゲーム の説明をすると 242 / 244
81.
皆口をそろえて ゲームでまで納期の ことを考えたくないと 243 / 244
82.
汚いものを見る様な目で 244 / 244
83.
第三部 今後のPerlの同人活動 1000 / 244
84.
技術書典2 2000 / 244
85.
え-25 2000 / 3004
86.
YAPC::Kansai 2017 LT おしまい 驚くべきことに Perlの話 2017/03/04