about Perl5.10

3,167 views

Published on

Kansai.pm Meeting #9

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
3,167
On SlideShare
0
From Embeds
0
Number of Embeds
44
Actions
Shares
0
Downloads
5
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

about Perl5.10

  1. 1. about Perl5.10 id:lapis25 lapis25@gmail.com Kansai.pm Meeting #9/20080531 1
  2. 2. Perlの歴史• 1987 1.0• 1988 2.0• 1989 3.0• 1991 4.0• 1994 5.0 2 2
  3. 3. Perl5の歴史• 1994 5.0• (略• 2000 5.6• 2002 5.8• 2007 5.10 3 3
  4. 4. Perl5.10.0• 2007/12/18 リリース 4 4
  5. 5. 今日の内容• Perl5.10• 後方互換性• 追加された機能• ……の一部紹介(全部はムリ) 5 5
  6. 6. すべてを知りたいなら• perldoc perl5100delta• 和訳 • http://fleur.hio.jp/perldoc/mix/pod/ perl5100delta.mix.html 6 6
  7. 7. 活字で読みたい• Recent Perl World#12 / ITO Naoya WEB+DB PRESS Vol.43 7 7
  8. 8. 今日の結論• リリースからもうすぐ半年• 5.10コワクナイヨ• もっと使っていきましょう 8 8
  9. 9. 9 9
  10. 10. 後方互換性 10 10
  11. 11. 後方互換性• Perlのいままでのバージョンと同様に 極力後方互換性を維持している 11 11
  12. 12. 互換のない修正• pack()/unpack()で utf-8エンコードされた文字列の処理変更• 疑似ハッシュの廃止• warningsプラグマが Carpをロードしなくなった• etc... 12 12
  13. 13. 追加された機能 13 13
  14. 14. featureプラグマ 14 14
  15. 15. featureプラグマ• 後方互換性のない新しい構文を有効にするた めのプラグマ• レキシカルスコープ 15 15
  16. 16. featureプラグマ• say• switch• state 16 16
  17. 17. featureプラグマuse feature ’say’; 17 17
  18. 18. featureプラグマuse feature qw(say switch state); 18 18
  19. 19. featureプラグマ • すべての機能が有効になるuse feature qw(:5.10); 19 19
  20. 20. featureプラグマ • featureプラグマが暗黙的にロードされるuse 5.10; 20 20
  21. 21. featureプラグマuse feature qw(say switch state);use feature qw(:5.10);use 5.10; 21 21
  22. 22. 新しいコマンドラインスイッチ 22 22
  23. 23. one-liner• one-liner用コマンドラインスイッチ• いままでも -e があるよね? 23 23
  24. 24. -eスイッチ% perl -e print "hello, world!n" 24 24
  25. 25. -Eスイッチ% perl -E say "hallo, perl5.10!" 25 25
  26. 26. -Eスイッチ• one-liner用のコマンドラインスイッチ• perl5.10の機能を有効にして実行 26 26
  27. 27. 27
  28. 28. say 28 28
  29. 29. Say• 改行付きprint 29 29
  30. 30. Printprint "Hello, world!n" 30 30
  31. 31. Saysay Hello, world! 31 31
  32. 32. Printprint "$_n" for @lines; 32 32
  33. 33. Saysay for @lines; 33 33
  34. 34. switch 34 34
  35. 35. switch• Perlにもswitch文が!• ただし構文はswitch/caseではなく given/when 35 35
  36. 36. given/whenuse feature switch;given ($foo) { when (/^abc/) { $abc = 1; } when (/^def/) { $def = 1; } when (/^xyz/) { $xyz = 1; } default { $not = 1; }} 36 36
  37. 37. for/whenuse feature switch;for (@foo) { when (/^abc/) { $abc = 1; } when (/^def/) { $def = 1; } when (/^xyz/) { $xyz = 1; } default { $not = 1; }} 37 37
  38. 38. smart match 38 38
  39. 39. ~~39 39
  40. 40. smart match• 比較対象によって比較の方法が変わる• whenでもスマートマッチが行われる• 単独で使う場合は• 詳しくはperldoc perlsynで 40 40
  41. 41. state 41 41
  42. 42. state変数• my local ourに続く変数宣言 state• 変数宣言時に一度だけ初期化される変数• スコープはブロックの範囲内 42 42
  43. 43. クロージャ • クロージャを使って書いていた処理を{ my $i = 0; sub func { $i++ }} 43 43
  44. 44. state変数 • すっきりかけるuse feature state;sub func { state $i = 0; $i++;} 44 44
  45. 45. 45
  46. 46. //46 46
  47. 47. dor 47 47
  48. 48. Defined-or 48 48
  49. 49. Defined-or• こう書いていたのがdefined $a ? $a : $b 49 49
  50. 50. Defined-or• こう書けます$a // $b 50 50
  51. 51. //の優先度• ¦¦ とまったくいっしょ• 低優先度版のerr演算子はなくなりました 51 51
  52. 52. named capture 52 52
  53. 53. named capture• 正規表現で名前付きでキャプチャできる• 構文は(?<NAME>)• k<NAME> で後方参照可能• キャプチャした内容には%+ハッシュでアクセ ス可能 53 53
  54. 54. named captures/(?<letter>.)k<letter>/$+{letter}/g 54 54
  55. 55. ファイルテスト演算子 55 55
  56. 56. ファイルテスト演算子-x $file && -w _ && -f _ 56 56
  57. 57. ファイルテスト演算子• まとめて書けるように-f -w -x $file 57 57
  58. 58. ……他にもいろいろあります 58 58
  59. 59. • 宣言することで$_をレキシカルに• mroプラグマ• UNIVERSAL::DOES()• no VERSIONで指定したバージョンより古い Perlを使いたいことを表現• %^H でレキシカルプラグマを実装可能に 59 59
  60. 60. 新しいコアモジュール 60 60
  61. 61. • encoding::warnings • Locale::Maketext::Simple• Module::CoreList • Params::Check• Math::BigInt::FastCalc • Term::UI• Compress::Zlib • Object::Accessor• IO::Zlib • Module::Pluggable• Archive::Tar • Module::Load::Conditiona• Digest::SHA • Time::Piece• ExtUtils::CBuilder • IPC::Cmd• ExtUtils::ParseXS • File::Fetch• Hash::Util::FieldHash • Log::Message• Module::Build • Log::Message::Simple• Module::Load • Archive::Extract• Module::Loaded • CPANPLUS• Package::Constants • Pod::Escapes• Win32API::File 61 • Pod::Simple 61
  62. 62. Perl5.10を使うには 62 62
  63. 63. Perl5.10を使うには• fedora9は5.10• debian(sid)は5.10になったようです• MacPortsにもperl5.10あります• ActivePerlも5.10• いっそソースからインストール 63 63
  64. 64. まとめ 64 64
  65. 65. Perl5.10はふつうに使えそう 65 65
  66. 66. 早速インストール! 66 66
  67. 67. ご静聴ありがとう ございました 67 67
  68. 68. questions? 68 68
  69. 69. 参考資料• perl5100delta http://fleur.hio.jp/perldoc/perl/5.10.0/pod/ perl5100delta.mix.html• Whats new in Perl 5.10? http://www.slideshare.net/acme/whats-new-in-perl-510• Recent Perl World#12 / ITO Naoya WEB+DB PRESS Vol.43 69 69

×