SlideShare une entreprise Scribd logo
1  sur  28
2018 年夏の Perl5
Kenichi Ishigaki
@charsbar
Shibuya.pm #18
Jul 5, 2018
me
• 2016 年の Perl @ LLoT
• Perl in 2016 @ YAPC::Hokkaido
• 2017 年春の Perl @ YAPC::Kansai
• 2017 年夏の Perl @ YAPC::Fukuoka
• (2018 年初夏の Perl5) @ Hokkaido.pm #14
• 2018 年夏の Perl5 @ Shibuya.pm #18 <- イマ
ココ
Perl 5.28 が出まし
た
• 6 月 23 日 ( 日本時間で 6 月 24 日午
前中 )
• 5 月中に出るという話もありました
が、いろいろあって 1 ヶ月遅れに
• おもな変更点は perldelta 参照
https://metacpan.org/pod/distribution/perl/pod/perldelta.pod
http://perldoc.jp/docs/perl/5.28.0/perl5280delta.pod*Strawberry Perl や ActivePerl はまだ
異なる種類のハンドルの
共有はエラーに
# 5.26 まで
open my $hd, '<', 'foo.txt';
opendir $hd, 'bar/';
say <$hd>; # foo.txt の中身が出力される
say readdir $hd; # bar ディレクトリ配下のファイル一覧
# 5.28
Cannot open $hd as a dirhandle: it is already open
as a filehandle
ヒアドキュメントの終端
は省略不可に
print <<''; # OK
Empty string terminator is valid.
print <<""; # OK
Empty $string terminator is also valid.
# 5.28
print <<; # NG
This has long been deprecated since 5.000.
Use of bare << to mean <<"" is forbidden
関数呼び出しで継承元の
AUTOLOAD が呼ばれるとエラーに
package A;
our @AUTOLOAD;
sub AUTOLOAD { ... }
package main;
A::foo(); # OK
package A;
@ISA = qw/B/;
package B;
our @AUTOLOAD;
sub AUTOLOAD { ... }
package main;
A::foo();
# Use of inherited AUTOLOAD
for non-method A::foo() is no
longer allowed
セキュリティフィック
ス• 正規表現や Windows の環境変数など
• [CVE-2017-12837] ~ 5.24.3/5.26.1
• [CVE-2017-12883] ~ 5.24.3/5.26.1
• [CVE-2017-12814] ~ 5.24.3/5.26.1
• 4 月にリリースされた Perl
5.26.2/5.24.4 でもいくつか問題が修正
されています
• [CVE-2018-6797] 5.18 ~ 5.26
• [CVE-2018-6798] 5.22 ~ 5.26
文字列用のビット演算子
• 5.22 で実験的に導入されたものが正式
化
• これによってビット演算の挙動が変わ
る場合があります
use 5.028; # または use feature 'bitwise';
say "a" &. "b"; # 「 ` 」 文字列としてビッ
ト演算
say "a" & "b"; # 「 0 」 数値としてビット
演算
OP_MULTICONCAT
文字列結合が多くの場合高速化
( 下記のようなコードだと四倍
速 )my $s;
my $a = "abx{100}cde";
my $b = "fghij";
my $c = "x{101}klmn";
for my $i (1..10_000_000) {
$s = "x{100}wxyz";
$s .= "foo=$a bar=$b baz=$c";
}
Unicode 10 サポー
ト
ビットコインの絵文字などが
追加
delete %hash{@keys}
my %hash = (foo => 1, bar => 2, baz => 3);
my @deleted = delete @hash{qw/foo bar/}; # (1, 2)
# my @deleted = map {delete $hash{$_}} qw/foo bar/;
# delete $hash{$_} for qw/foo bar/;
リストを返す delete は昔からありま
した
ただし、いらないキーがいつでもわかっているとは限りません
delete %hash{@keys}
5.20 からは必要なキー / 値のみ抽出可能
にmy %new = %hash{qw/foo bar/};
# (foo => 1, bar => 2)
# my %new = map {$_ => $hash{$_}} qw/foo bar/;
×my %deleted = delete %hash{qw/foo bar/};
# delete argument is key/value hash slice, use hash
slice
5.28 では delete も可能に
my %new = delete %hash{qw/foo bar/};
die " 知らないキー / 値が残ってる !" if %hash;
# my %new =
# map {$_ => delete $hash{$_}} qw/foo bar/;
delete %hash{@keys}
perl -i がより安全
に ...
• 従来は処理の開始時にファイルを置換
していたのでエラーが出るとファイル
が壊れることも
• 置き換えのタイミングが処理完了後に
なったので、元のファイルは壊れにく
く
• 処理中にディレクトリが変わったりす
るとおかしなことになる場合も
• ファイルディスクリプタ枯渇問題
https://rt.perl.org/Public/Bug/Display.html?id=133314
前世紀的なコアモジュー
ルの書き換え
• use vars の置き換え
• DynaLoader から XSLoader へ
• Devel::PPPort の対応下限は 5.6.1
に
古いパッケージセパレー
タに関する警告
my $name = 'Foo';
say "In $name's house...";
古いパッケージセパレー
タに関する警告
my $name = 'Foo';
say "In $name's house...";
Use of uninitialized value $name::s in
concatenation (.) or string
古いパッケージセパレー
タに関する警告
my $name = 'Foo';
say "In $name's house...";
# 5.28 では新しい警告が追加
Old package separator used in string
(Did you mean "$name's" instead?)
Use of uninitialized value $name::s in
concatenation (.) or string
…その他
• 異なる種類の文字の混在を正規
表現で検出可能に ( 実験的 )
• JSON::PP が数値判定に B を使
わないバージョンに
• glob の高速化
• etc etc
仕切り直しに
なったもの
${^ENCODING} に undef 以外の
値をセットするとエラーに
本当はまるっと消えるはずだったんです
が、 undef の場合だけは仕切り直しに
${^ENCODING} = 1;
# ${^ENCODING} is no longer supported
${^ENCODING} = undef;
正規表現中の { の扱
い
autoconf の件もあって、一部の { につ
いてはエラーから警告に戻っています
# 5.26 はエラー、 5.28 は警告、 5.30 でエラーに戻
る予定
$foo =~ /something{}/;
$foo =~ /${foo}/;
$foo =~ /${[^}]*}/; # 5.26 でも警告
# 5.28 から警告、 5.32 でエラーになる予定
$foo =~ /({1})/;
$foo =~ /({1})/; # これは OK
スマートマッチ
Perl 5.27.7 で一度大きな変更が入っ
たものの、あまりに影響が大きすぎ
たので Perl 5.27.8 で差し戻しに
P5P update: Smarter Match
https://www.perl.com/article/p5p-update-smarter-match/
サブルーチンシグネチャ
:lvalue の場合に問題が発生すること
が発覚したため、シグネチャとアト
リビュートの並び順が再度変更に
なっています# 5.20
sub foo :lvalue ($a, $b) { ... }
# 5.22 ~ 5.26
sub foo ($a, $b) :lvalue { ... }
# 5.28 ~
sub foo :lvalue ($a, $b) { ... }
post526sigfix
mst 氏による修正用スクリ
プト
http://www.trout.me.uk/perl/post526sigfixUsage: post526sigfix [OPTIONS] [FILES]
post526sigfix -u perl526file >perl528file
post526sigfix -d perl528file >perl526file
post526sigfix -d --pmc lib/My/Module.pm >lib/My/Module.pmc
post526sigfix -u -i $(find lib -name '*.pm')
post526sigfix -d -i --pmc $(find lib -name '*.pm')
基本は書き換えですが、 pmc オプションを利用すると 5.26/5.28 両対応も
可能
…その他
• Module::Install(::DSL) が一因で
差し戻しになった変更とか
• p5p の ML にタイトルに BBC を
含むメールが流れてきたら要注
意
今後の予定
• perldeprecation.pod には Perl
5.32 までの廃止 / 削除予定が記載
https://metacpan.org/pod/distribution/perl/pod/p
erldeprecation.pod
• TPC 2018 in Glasgow
http://act.perlconference.org/tpc-2018-glasgow/
Thanks

Contenu connexe

Tendances

Write good parser in perl
Write good parser in perlWrite good parser in perl
Write good parser in perlJiro Nishiguchi
 
awk v.s. bashどっちが強い?@OSC2011Tokyo
awk v.s. bashどっちが強い?@OSC2011Tokyoawk v.s. bashどっちが強い?@OSC2011Tokyo
awk v.s. bashどっちが強い?@OSC2011TokyoRyuichi Ueda
 
Active record query interface
Active record query interfaceActive record query interface
Active record query interfaceTomoya Kawanishi
 
PHPの今とこれから2014
PHPの今とこれから2014PHPの今とこれから2014
PHPの今とこれから2014Rui Hirokawa
 
php7's ast
php7's astphp7's ast
php7's astdo_aki
 
知ってるようで意外と知らないPHPの便利関数
知ってるようで意外と知らないPHPの便利関数知ってるようで意外と知らないPHPの便利関数
知ってるようで意外と知らないPHPの便利関数Wataru Terada
 
メタメタプログラミングRuby
メタメタプログラミングRubyメタメタプログラミングRuby
メタメタプログラミングRubyemasaka
 
GNU awk (gawk) を用いた Apache ログ解析方法
GNU awk (gawk) を用いた Apache ログ解析方法GNU awk (gawk) を用いた Apache ログ解析方法
GNU awk (gawk) を用いた Apache ログ解析方法博文 斉藤
 
姫路IT系勉強会 Vol.11 第0回L-1グランプリ bash
姫路IT系勉強会 Vol.11 第0回L-1グランプリ bash姫路IT系勉強会 Vol.11 第0回L-1グランプリ bash
姫路IT系勉強会 Vol.11 第0回L-1グランプリ bashJun Nogata
 
Perl and Email #3 ``Haineko''/Kyoto.pm #5
Perl and Email #3 ``Haineko''/Kyoto.pm #5Perl and Email #3 ``Haineko''/Kyoto.pm #5
Perl and Email #3 ``Haineko''/Kyoto.pm #5azumakuniyuki 🐈
 
Stroustrup11章雑感
Stroustrup11章雑感Stroustrup11章雑感
Stroustrup11章雑感31 00
 
GoらしいAPIを求める旅路 (Go Conference 2018 Spring)
GoらしいAPIを求める旅路 (Go Conference 2018 Spring)GoらしいAPIを求める旅路 (Go Conference 2018 Spring)
GoらしいAPIを求める旅路 (Go Conference 2018 Spring)lestrrat
 
Google container builderと友だちになるまで
Google container builderと友だちになるまでGoogle container builderと友だちになるまで
Google container builderと友だちになるまでlestrrat
 
Good Parts of PHP and the UNIX Philosophy
Good Parts of PHP and the UNIX PhilosophyGood Parts of PHP and the UNIX Philosophy
Good Parts of PHP and the UNIX PhilosophyYuya Takeyama
 
20年越しで Perl 4 to 5 した話
20年越しで Perl 4 to 5 した話20年越しで Perl 4 to 5 した話
20年越しで Perl 4 to 5 した話outerinside
 
PHP基本的関数QUIZ
PHP基本的関数QUIZPHP基本的関数QUIZ
PHP基本的関数QUIZWataru Terada
 

Tendances (20)

Write good parser in perl
Write good parser in perlWrite good parser in perl
Write good parser in perl
 
awk v.s. bashどっちが強い?@OSC2011Tokyo
awk v.s. bashどっちが強い?@OSC2011Tokyoawk v.s. bashどっちが強い?@OSC2011Tokyo
awk v.s. bashどっちが強い?@OSC2011Tokyo
 
Active record query interface
Active record query interfaceActive record query interface
Active record query interface
 
PHPの今とこれから2014
PHPの今とこれから2014PHPの今とこれから2014
PHPの今とこれから2014
 
php7's ast
php7's astphp7's ast
php7's ast
 
HHVM Hack
HHVM HackHHVM Hack
HHVM Hack
 
F#のすすめ
F#のすすめF#のすすめ
F#のすすめ
 
知ってるようで意外と知らないPHPの便利関数
知ってるようで意外と知らないPHPの便利関数知ってるようで意外と知らないPHPの便利関数
知ってるようで意外と知らないPHPの便利関数
 
メタメタプログラミングRuby
メタメタプログラミングRubyメタメタプログラミングRuby
メタメタプログラミングRuby
 
GNU awk (gawk) を用いた Apache ログ解析方法
GNU awk (gawk) を用いた Apache ログ解析方法GNU awk (gawk) を用いた Apache ログ解析方法
GNU awk (gawk) を用いた Apache ログ解析方法
 
PHP7を魔改造した話
PHP7を魔改造した話PHP7を魔改造した話
PHP7を魔改造した話
 
姫路IT系勉強会 Vol.11 第0回L-1グランプリ bash
姫路IT系勉強会 Vol.11 第0回L-1グランプリ bash姫路IT系勉強会 Vol.11 第0回L-1グランプリ bash
姫路IT系勉強会 Vol.11 第0回L-1グランプリ bash
 
Perl and Email #3 ``Haineko''/Kyoto.pm #5
Perl and Email #3 ``Haineko''/Kyoto.pm #5Perl and Email #3 ``Haineko''/Kyoto.pm #5
Perl and Email #3 ``Haineko''/Kyoto.pm #5
 
Stroustrup11章雑感
Stroustrup11章雑感Stroustrup11章雑感
Stroustrup11章雑感
 
GoらしいAPIを求める旅路 (Go Conference 2018 Spring)
GoらしいAPIを求める旅路 (Go Conference 2018 Spring)GoらしいAPIを求める旅路 (Go Conference 2018 Spring)
GoらしいAPIを求める旅路 (Go Conference 2018 Spring)
 
Google container builderと友だちになるまで
Google container builderと友だちになるまでGoogle container builderと友だちになるまで
Google container builderと友だちになるまで
 
Perl io layer
Perl io layerPerl io layer
Perl io layer
 
Good Parts of PHP and the UNIX Philosophy
Good Parts of PHP and the UNIX PhilosophyGood Parts of PHP and the UNIX Philosophy
Good Parts of PHP and the UNIX Philosophy
 
20年越しで Perl 4 to 5 した話
20年越しで Perl 4 to 5 した話20年越しで Perl 4 to 5 した話
20年越しで Perl 4 to 5 した話
 
PHP基本的関数QUIZ
PHP基本的関数QUIZPHP基本的関数QUIZ
PHP基本的関数QUIZ
 

Similaire à 2018年夏のPerl5

2017年夏のPerl
2017年夏のPerl2017年夏のPerl
2017年夏のPerlcharsbar
 
2017年春のPerl
2017年春のPerl2017年春のPerl
2017年春のPerlcharsbar
 
実践Sass 後編
実践Sass 後編実践Sass 後編
実践Sass 後編kosei27
 
Perl6で遊ぼう
Perl6で遊ぼうPerl6で遊ぼう
Perl6で遊ぼうVienosNotes
 
CPANの依存モジュールをもう少し正しく検出したい
CPANの依存モジュールをもう少し正しく検出したいCPANの依存モジュールをもう少し正しく検出したい
CPANの依存モジュールをもう少し正しく検出したいcharsbar
 
Perl 6 Object-Oliented Programming
Perl 6 Object-Oliented ProgrammingPerl 6 Object-Oliented Programming
Perl 6 Object-Oliented Programmingrisou
 
とあるプロジェクトのつらみなコード
とあるプロジェクトのつらみなコードとあるプロジェクトのつらみなコード
とあるプロジェクトのつらみなコードYuya Taki
 
おまえらこのライブラリ使ってないの? m9 (2013-07)
おまえらこのライブラリ使ってないの? m9	(2013-07)おまえらこのライブラリ使ってないの? m9	(2013-07)
おまえらこのライブラリ使ってないの? m9 (2013-07)Toru Furukawa
 
How to debug a perl script using gdb
How to debug a perl script using gdbHow to debug a perl script using gdb
How to debug a perl script using gdbakirahiguchi
 
入門 超絶技巧プログラミング !
入門 超絶技巧プログラミング !入門 超絶技巧プログラミング !
入門 超絶技巧プログラミング !Nobutada Matsubara
 
Buildinsider OFFLINE TypeScriptの基礎から実践・利用事例まで
Buildinsider OFFLINE TypeScriptの基礎から実践・利用事例までBuildinsider OFFLINE TypeScriptの基礎から実践・利用事例まで
Buildinsider OFFLINE TypeScriptの基礎から実践・利用事例までMasahiro Wakame
 
Lisp tutorial for Pythonista : Day 2
Lisp tutorial for Pythonista : Day 2Lisp tutorial for Pythonista : Day 2
Lisp tutorial for Pythonista : Day 2Ransui Iso
 
20190530-DesignOneGo01
20190530-DesignOneGo0120190530-DesignOneGo01
20190530-DesignOneGo01Kento Sato
 
JavaScriptクイックスタート
JavaScriptクイックスタートJavaScriptクイックスタート
JavaScriptクイックスタートShumpei Shiraishi
 
プログラミング言語 Ruby 2章 Rubyプログラムの構造と実行
プログラミング言語 Ruby 2章 Rubyプログラムの構造と実行プログラミング言語 Ruby 2章 Rubyプログラムの構造と実行
プログラミング言語 Ruby 2章 Rubyプログラムの構造と実行monglee
 
PHPの今とこれから2021
PHPの今とこれから2021PHPの今とこれから2021
PHPの今とこれから2021Rui Hirokawa
 

Similaire à 2018年夏のPerl5 (20)

2017年夏のPerl
2017年夏のPerl2017年夏のPerl
2017年夏のPerl
 
2017年春のPerl
2017年春のPerl2017年春のPerl
2017年春のPerl
 
実践Sass 後編
実践Sass 後編実践Sass 後編
実践Sass 後編
 
Perl6で遊ぼう
Perl6で遊ぼうPerl6で遊ぼう
Perl6で遊ぼう
 
CPANの依存モジュールをもう少し正しく検出したい
CPANの依存モジュールをもう少し正しく検出したいCPANの依存モジュールをもう少し正しく検出したい
CPANの依存モジュールをもう少し正しく検出したい
 
about Perl5.10
about Perl5.10about Perl5.10
about Perl5.10
 
Perl 6 Object-Oliented Programming
Perl 6 Object-Oliented ProgrammingPerl 6 Object-Oliented Programming
Perl 6 Object-Oliented Programming
 
とあるプロジェクトのつらみなコード
とあるプロジェクトのつらみなコードとあるプロジェクトのつらみなコード
とあるプロジェクトのつらみなコード
 
おまえらこのライブラリ使ってないの? m9 (2013-07)
おまえらこのライブラリ使ってないの? m9	(2013-07)おまえらこのライブラリ使ってないの? m9	(2013-07)
おまえらこのライブラリ使ってないの? m9 (2013-07)
 
How to debug a perl script using gdb
How to debug a perl script using gdbHow to debug a perl script using gdb
How to debug a perl script using gdb
 
入門 超絶技巧プログラミング !
入門 超絶技巧プログラミング !入門 超絶技巧プログラミング !
入門 超絶技巧プログラミング !
 
Aizu lt tokyo_luxion
Aizu lt tokyo_luxionAizu lt tokyo_luxion
Aizu lt tokyo_luxion
 
Perl勉強会#2資料
Perl勉強会#2資料Perl勉強会#2資料
Perl勉強会#2資料
 
Buildinsider OFFLINE TypeScriptの基礎から実践・利用事例まで
Buildinsider OFFLINE TypeScriptの基礎から実践・利用事例までBuildinsider OFFLINE TypeScriptの基礎から実践・利用事例まで
Buildinsider OFFLINE TypeScriptの基礎から実践・利用事例まで
 
Lisp tutorial for Pythonista : Day 2
Lisp tutorial for Pythonista : Day 2Lisp tutorial for Pythonista : Day 2
Lisp tutorial for Pythonista : Day 2
 
20190530-DesignOneGo01
20190530-DesignOneGo0120190530-DesignOneGo01
20190530-DesignOneGo01
 
Okinawapm #1
Okinawapm #1Okinawapm #1
Okinawapm #1
 
JavaScriptクイックスタート
JavaScriptクイックスタートJavaScriptクイックスタート
JavaScriptクイックスタート
 
プログラミング言語 Ruby 2章 Rubyプログラムの構造と実行
プログラミング言語 Ruby 2章 Rubyプログラムの構造と実行プログラミング言語 Ruby 2章 Rubyプログラムの構造と実行
プログラミング言語 Ruby 2章 Rubyプログラムの構造と実行
 
PHPの今とこれから2021
PHPの今とこれから2021PHPの今とこれから2021
PHPの今とこれから2021
 

Plus de charsbar

Common boolean class_for_perl5
Common boolean class_for_perl5Common boolean class_for_perl5
Common boolean class_for_perl5charsbar
 
萬國之津梁
萬國之津梁萬國之津梁
萬國之津梁charsbar
 
Better detection of what modules are used by some Perl 5 code
Better detection of what modules are used by some Perl 5 codeBetter detection of what modules are used by some Perl 5 code
Better detection of what modules are used by some Perl 5 codecharsbar
 
Json(::PP) is a-changing
Json(::PP) is a-changingJson(::PP) is a-changing
Json(::PP) is a-changingcharsbar
 
2016年のPerl (Long version)
2016年のPerl (Long version)2016年のPerl (Long version)
2016年のPerl (Long version)charsbar
 
JSON, JSON::PP, and more
JSON, JSON::PP, and moreJSON, JSON::PP, and more
JSON, JSON::PP, and morecharsbar
 
perl language update
perl language updateperl language update
perl language updatecharsbar
 
2013年のCPANモジュール作成事情
2013年のCPANモジュール作成事情2013年のCPANモジュール作成事情
2013年のCPANモジュール作成事情charsbar
 
What you need to remember when you upload to CPAN
What you need to remember when you upload to CPANWhat you need to remember when you upload to CPAN
What you need to remember when you upload to CPANcharsbar
 
On UnQLite
On UnQLiteOn UnQLite
On UnQLitecharsbar
 
typemap in Perl/XS
typemap in Perl/XS  typemap in Perl/XS
typemap in Perl/XS charsbar
 
Analyze CPAN, Analyze Community
Analyze CPAN, Analyze CommunityAnalyze CPAN, Analyze Community
Analyze CPAN, Analyze Communitycharsbar
 
Annual Report 2012
Annual Report 2012Annual Report 2012
Annual Report 2012charsbar
 
DBD::SQLite
DBD::SQLiteDBD::SQLite
DBD::SQLitecharsbar
 
CPANTS: Kwalitative website and its tools
CPANTS: Kwalitative website and its toolsCPANTS: Kwalitative website and its tools
CPANTS: Kwalitative website and its toolscharsbar
 
CPANTS 2012
CPANTS 2012CPANTS 2012
CPANTS 2012charsbar
 
Revisiting ppm
Revisiting ppmRevisiting ppm
Revisiting ppmcharsbar
 
Mojolicious::Liteを使ってみよう
Mojolicious::Liteを使ってみようMojolicious::Liteを使ってみよう
Mojolicious::Liteを使ってみようcharsbar
 
変数、リファレンス
変数、リファレンス変数、リファレンス
変数、リファレンスcharsbar
 
關於perl的 文件翻譯
關於perl的文件翻譯關於perl的文件翻譯
關於perl的 文件翻譯charsbar
 

Plus de charsbar (20)

Common boolean class_for_perl5
Common boolean class_for_perl5Common boolean class_for_perl5
Common boolean class_for_perl5
 
萬國之津梁
萬國之津梁萬國之津梁
萬國之津梁
 
Better detection of what modules are used by some Perl 5 code
Better detection of what modules are used by some Perl 5 codeBetter detection of what modules are used by some Perl 5 code
Better detection of what modules are used by some Perl 5 code
 
Json(::PP) is a-changing
Json(::PP) is a-changingJson(::PP) is a-changing
Json(::PP) is a-changing
 
2016年のPerl (Long version)
2016年のPerl (Long version)2016年のPerl (Long version)
2016年のPerl (Long version)
 
JSON, JSON::PP, and more
JSON, JSON::PP, and moreJSON, JSON::PP, and more
JSON, JSON::PP, and more
 
perl language update
perl language updateperl language update
perl language update
 
2013年のCPANモジュール作成事情
2013年のCPANモジュール作成事情2013年のCPANモジュール作成事情
2013年のCPANモジュール作成事情
 
What you need to remember when you upload to CPAN
What you need to remember when you upload to CPANWhat you need to remember when you upload to CPAN
What you need to remember when you upload to CPAN
 
On UnQLite
On UnQLiteOn UnQLite
On UnQLite
 
typemap in Perl/XS
typemap in Perl/XS  typemap in Perl/XS
typemap in Perl/XS
 
Analyze CPAN, Analyze Community
Analyze CPAN, Analyze CommunityAnalyze CPAN, Analyze Community
Analyze CPAN, Analyze Community
 
Annual Report 2012
Annual Report 2012Annual Report 2012
Annual Report 2012
 
DBD::SQLite
DBD::SQLiteDBD::SQLite
DBD::SQLite
 
CPANTS: Kwalitative website and its tools
CPANTS: Kwalitative website and its toolsCPANTS: Kwalitative website and its tools
CPANTS: Kwalitative website and its tools
 
CPANTS 2012
CPANTS 2012CPANTS 2012
CPANTS 2012
 
Revisiting ppm
Revisiting ppmRevisiting ppm
Revisiting ppm
 
Mojolicious::Liteを使ってみよう
Mojolicious::Liteを使ってみようMojolicious::Liteを使ってみよう
Mojolicious::Liteを使ってみよう
 
変数、リファレンス
変数、リファレンス変数、リファレンス
変数、リファレンス
 
關於perl的 文件翻譯
關於perl的文件翻譯關於perl的文件翻譯
關於perl的 文件翻譯
 

2018年夏のPerl5