2. Kyoto.pm Tech Talks #01 in 京都::はてなさん 2012/03/17(土)
Kyoto.pm設立
おめでとうございます。
Some of new features from Perl 5.10 @azumakuniyuki / Cubicroot Co. Ltd.
3. Kyoto.pm Tech Talks #01 in 京都::はてなさん 2012/03/17(土)
自己紹介
Some of new features from Perl 5.10 @azumakuniyuki / Cubicroot Co. Ltd.
4. Kyoto.pm Tech Talks #01 in 京都::はてなさん 2012/03/17(土)
自己紹介
- Azuma, Kuniyuki
- (@|id:)azumakuniyuki
- サーバ管理者(*BSD, Linux, 昔はSolarisも)
- プログラマ(Perl, /bin/sh, たまにC, R)
- 京都市(六角衣棚)
Some of new features from Perl 5.10 @azumakuniyuki / Cubicroot Co. Ltd.
5. Kyoto.pm Tech Talks #01 in 京都::はてなさん 2012/03/17(土)
Perl
- /bin/shで書きにくい場合はPerl
- 2008年秋からモダンPerlを勉強
- モダンPerl入門+CPANモジュールガイド
- YAPC::Asia(2回参加・登壇)
- Kansai.pm(2回参加・発表)
Some of new features from Perl 5.10 @azumakuniyuki / Cubicroot Co. Ltd.
6. Kyoto.pm Tech Talks #01 in 京都::はてなさん 2012/03/17(土)
Perlで作ったもの
- bounceHammer(ばうんすはんまー)
- バウンスメール解析専用
- コマンドラインツール+WebUI
- OpenSource! 2010/03〜
- http://bouncehammer.jp/
- DBIx::Skinny使ってます
Some of new features from Perl 5.10 @azumakuniyuki / Cubicroot Co. Ltd.
7. Kyoto.pm Tech Talks #01 in 京都::はてなさん 2012/03/17(土)
本題
Some of new features from Perl 5.10 @azumakuniyuki / Cubicroot Co. Ltd.
8. Kyoto.pm Tech Talks #01 in 京都::はてなさん 2012/03/17(土)
Perl 5.10以降の新機能
- サンプルコードではまだあまり見かけない
- 色が変わらないのがある(Vim)
- レンタルサーバとかまだPerl 5.8.8
- ~~ スマートマッチ演算子
- // Defined-Or演算子
- given-when Cのswitch-caseみたいなの
Some of new features from Perl 5.10 @azumakuniyuki / Cubicroot Co. Ltd.
9. Kyoto.pm Tech Talks #01 in 京都::はてなさん 2012/03/17(土)
~~
スマートマッチ演算子
Some of new features from Perl 5.10 @azumakuniyuki / Cubicroot Co. Ltd.
10. Kyoto.pm Tech Talks #01 in 京都::はてなさん 2012/03/17(土)
スマートマッチ演算子
- grep { $x eq $_ } @list;
- $x ~~ @list;
- if $y == $z;
- if $y ~~ $z;
Some of new features from Perl 5.10 @azumakuniyuki / Cubicroot Co. Ltd.
11. Kyoto.pm Tech Talks #01 in 京都::はてなさん 2012/03/17(土)
~~ Sample #1
my $d = [ 'gmail.com', 'hotmail.com', ];
sub grepit {
my $x = shift;
return 1 if grep { $x eq $_ } @$d; }
sub smart {
my $x = shift;
return 1 if $x ~~ @$d; }
Some of new features from Perl 5.10 @azumakuniyuki / Cubicroot Co. Ltd.
12. Kyoto.pm Tech Talks #01 in 京都::はてなさん 2012/03/17(土)
~~ Benchmark #1
* MacBook Air/perl 5.14.2
Rate grep eq smart~~
grep eq 1011236/s -- -28%
smart~~ 1406250/s 39% --
* Ubuntu/Perl 5.12.3
Rate grep eq smart~~
grep eq 666667/s -- -30%
smart~~ 957447/s 44% --
Some of new features from Perl 5.10 @azumakuniyuki / Cubicroot Co. Ltd.
13. Kyoto.pm Tech Talks #01 in 京都::はてなさん 2012/03/17(土)
~~ Sample #2
my $n = [ 1 .. 55 ];
sub grepit {
my $x = shift;
return 1 if grep { $x == $_ } @$n; }
sub smart {
my $x = shift;
return 1 if $x ~~ @$n; }
Some of new features from Perl 5.10 @azumakuniyuki / Cubicroot Co. Ltd.
14. Kyoto.pm Tech Talks #01 in 京都::はてなさん 2012/03/17(土)
~~ Benchmark #2
* MacBook Air/perl 5.14.2
Rate grep == smart~~
grep == 286624/s -- -45%
smart~~ 523256/s 83% --
* Ubuntu/Perl 5.12.3
Rate grep == smart~~
grep == 187110/s -- -55%
smart~~ 412844/s 121% --
Some of new features from Perl 5.10 @azumakuniyuki / Cubicroot Co. Ltd.
15. Kyoto.pm Tech Talks #01 in 京都::はてなさん 2012/03/17(土)
//
Defined-Or演算子
Some of new features from Perl 5.10 @azumakuniyuki / Cubicroot Co. Ltd.
16. Kyoto.pm Tech Talks #01 in 京都::はてなさん 2012/03/17(土)
Defined-Or演算子
- my $x = $y || $z; # $y = 0?
- my $x = defined $y ? $y : $z;
- my $x = $y // $z;
Some of new features from Perl 5.10 @azumakuniyuki / Cubicroot Co. Ltd.
17. Kyoto.pm Tech Talks #01 in 京都::はてなさん 2012/03/17(土)
// Sample
sub ifdefined {
my( $x, $y ) = @_;
my $z = defined $x ? $x : $y;
return 1 if $z == 0; }
sub definedor {
my( $x, $y ) = @_;
my $z = $x // $y;
return 1 if $z == 0; }
Some of new features from Perl 5.10 @azumakuniyuki / Cubicroot Co. Ltd.
18. Kyoto.pm Tech Talks #01 in 京都::はてなさん 2012/03/17(土)
// Benchmark
* MacBook Air/perl 5.14.2
Rate if-defined defined-or
if-defined 1666667/s -- -11%
defined-or 1875000/s 12% --
* Ubuntu/Perl 5.12.3
Rate if-defined defined-or
if-defined 1153846/s -- -9%
defined-or 1267606/s 10% --
Some of new features from Perl 5.10 @azumakuniyuki / Cubicroot Co. Ltd.
19. Kyoto.pm Tech Talks #01 in 京都::はてなさん 2012/03/17(土)
given-when
Some of new features from Perl 5.10 @azumakuniyuki / Cubicroot Co. Ltd.
20. Kyoto.pm Tech Talks #01 in 京都::はてなさん 2012/03/17(土)
given - when
- if( $x =~ m{…} ){
…; } else { …; }
- given( $x ){
when(m{…}){ …; }
default { …; } }
Some of new features from Perl 5.10 @azumakuniyuki / Cubicroot Co. Ltd.
21. Kyoto.pm Tech Talks #01 in 京都::はてなさん 2012/03/17(土)
given-when Sample
sub ifelse {
my $x = shift;
if( $x =~ m/[@]gmail[.]comz/ ){
…;
}elsif( $x =~ m/[@]hotmail[.]comz/ ){…; } }
sub givenwhen {
my $x = shift();
given( $x ){
when( m/[@]gmail[.]comz/ ){ …; }
when( m/[@]hotmail[.]comz/ ){ …; }
default { …; } } }
Some of new features from Perl 5.10 @azumakuniyuki / Cubicroot Co. Ltd.
22. Kyoto.pm Tech Talks #01 in 京都::はてなさん 2012/03/17(土)
given-when Benchmark
* MacBook Air/perl 5.14.2
Rate given-w if-else
given-w 769231/s -- -26%
if-else 1046512/s 36% --
* Ubuntu/Perl 5.12.3
Rate given-w if-else
given-w 548780/s -- -18%
if-else 666667/s 21% --
Some of new features from Perl 5.10 @azumakuniyuki / Cubicroot Co. Ltd.
23. Kyoto.pm Tech Talks #01 in 京都::はてなさん 2012/03/17(土)
はてなさん
いつも会場を
ありがとうございます
Some of new features from Perl 5.10 @azumakuniyuki / Cubicroot Co. Ltd.
24. Kyoto.pm Tech Talks #01 in 京都::はてなさん 2012/03/17(土)
ありがとう
ございました
Some of new features from Perl 5.10 @azumakuniyuki / Cubicroot Co. Ltd.