Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

最近僕が使うようになったPerl 5.10以降の新しいやつ

1,441 views

Published on

Smart match operator, Defined-Or operator, and given-when

  • Be the first to like this

最近僕が使うようになったPerl 5.10以降の新しいやつ

  1. 1. Kyoto.pm Tech Talks #01 in 京都::はてなさん 2012/03/17(土)最近僕が使うようになった Perl 5.10以降の新しいやつ @azumakuniyuki Cubicroot Co. Ltd.
  2. 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. 3. Kyoto.pm Tech Talks #01 in 京都::はてなさん 2012/03/17(土) 自己紹介 Some of new features from Perl 5.10 @azumakuniyuki / Cubicroot Co. Ltd.
  4. 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. 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. 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. 7. Kyoto.pm Tech Talks #01 in 京都::はてなさん 2012/03/17(土) 本題 Some of new features from Perl 5.10 @azumakuniyuki / Cubicroot Co. Ltd.
  8. 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. 9. Kyoto.pm Tech Talks #01 in 京都::はてなさん 2012/03/17(土) ~~ スマートマッチ演算子 Some of new features from Perl 5.10 @azumakuniyuki / Cubicroot Co. Ltd.
  10. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 23. Kyoto.pm Tech Talks #01 in 京都::はてなさん 2012/03/17(土) はてなさん いつも会場を ありがとうございます Some of new features from Perl 5.10 @azumakuniyuki / Cubicroot Co. Ltd.
  24. 24. Kyoto.pm Tech Talks #01 in 京都::はてなさん 2012/03/17(土) ありがとう ございました Some of new features from Perl 5.10 @azumakuniyuki / Cubicroot Co. Ltd.

×