about Perl5.10
Upcoming SlideShare
Loading in...5
×
 

about Perl5.10

on

  • 4,011 views

Kansai.pm Meeting #9

Kansai.pm Meeting #9

Statistics

Views

Total Views
4,011
Views on SlideShare
3,919
Embed Views
92

Actions

Likes
0
Downloads
3
Comments
0

4 Embeds 92

http://d.hatena.ne.jp 87
http://www.slideshare.net 3
http://static.slideshare.net 1
http://www.linkedin.com 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

about Perl5.10 about Perl5.10 Presentation Transcript

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