アカウント名:
パスワード:
「モダンPerl入門」は私も読みましたし、良い本だとは思いますがjcode.pl 時代の感覚で読むのは少々つらいかと
あえて、モダンじゃないけど「続・初めてのPerl」を推します。初めて とあるので、今更と思うかもしれませんがリファレンスとオブジェクトをしっかりおさえておくのが先決だと思います# 翻訳タイトル悪いよね
同感です。
ラクダ本の3版で、5.6で文法的に追加された要素や雰囲気を調べてから、perldeltaで5.8や5.10での差分を、特にこの辺りで色々と変わった文字や文字コードの扱い(UnicodeとかIOレイヤーとか、Encodeとかencodingプラグマとか。)を重点的につかみ、(あと色々便利になったことを眺めたりしつつ、)その上で「モダンPerl入門」に進むというのがいいのではないかと。
また、「Perlプログラミング救命病棟」という本で主に取り扱っているのが、「古いPerlコードを引き継いでそれを今風に書き直してメンテナンスする方法」なので、新旧の差分を追いかけるにはいいかも知れません。
ところで今、きれいで実用的なPerlでオブジェクト指向のコードを書こうとしたら何を使うのがいいんでしょう。あるいは諸氏は何を使われていますか。(「RubyかPythonに乗り換え」というのはそれはそうなのかも知れませんが。)
「モダンPerl入門」ではMooseが紹介されていましたが、今なお普段書くコードは、素直なblessしたハッシュリファレンスに少し自前で初期化コードとかアクセサ生成コードを足したようなものです。TIMTOWTDIとはいえ、だからこそ聞いてみたい感じがあります。
言っても言っても信じてもらえないんですが、今僕の書いているすべてのコード(納品とかしてるものも含め)全部Mooseです :)
MooseとかMouseとかShikaがこの先どうなるか分からないのであまり本腰を入れる気になれないんですよねぇ早くデファクト決まれ、みたいな
とりあえずMooseは使っていて気に入っていますが
Shika に関しては既に終了したプロジェクトです。Mouse に関しても Moose の load 時間やメモリ消費が気になる時に、 Moose の代わりとして使える物です。基本的には Moose を使う事が強く薦められています。use Moose した時の速度が気になる CGI などの用途でしたら Mouse を選択するのがありでしょう。将来的に Moose の読み込み時の速度が向上した等の時には Mouse は用済みのプロジェクトになる事は確定でしょうがその時の為に直接 Moose/Mouse を使うのではなく Any::Moose というラッパー経由で使うと移行が楽になると思います。
Moose まわりの詳しいお話はこちらの記事とかどうぞ。http://gihyo.jp/dev/serial/01/modern-perl/0004 [gihyo.jp]
また Mouse を利用して CGI/FastCGI むけのフレームワークの記事もあります。なんで Mouse を選択したかの説明も次回以降に説明されるかもしれません。http://gihyo.jp/dev/feature/01/perl_ark/0001 [gihyo.jp]
Shika に関しては既に終了したプロジェクトです。
といった情報は、どこを見てればわかるのでしょうか。
古い人間なので、Class::Accessor::Fast [cpan.org]使ってます。自家製モジュールはMojo::Base [cpan.org]のコピー品に以下のコードを拡張して、
sub create_attrs { my ($class, $attrs) = @_; while(my ($name, $value) = each %{$attrs}){ $class->attr($name, {chained => 1, default => $value}); }}
__PACKAGE__->create_attrs({ foo => 0, bar => 0,});
みたいに使ってます。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
192.168.0.1は、私が使っている IPアドレスですので勝手に使わないでください --- ある通りすがり
まずは基礎固め (スコア:1, 参考になる)
「モダンPerl入門」は私も読みましたし、良い本だとは思いますが
jcode.pl 時代の感覚で読むのは少々つらいかと
あえて、モダンじゃないけど「続・初めてのPerl」を推します。
初めて とあるので、今更と思うかもしれませんが
リファレンスとオブジェクトをしっかりおさえておくのが先決だと思います
# 翻訳タイトル悪いよね
Re:まずは基礎固め (スコア:2, 参考になる)
同感です。
ラクダ本の3版で、5.6で文法的に追加された要素や雰囲気を調べてから、perldeltaで5.8や5.10での差分を、特にこの辺りで色々と変わった文字や文字コードの扱い(UnicodeとかIOレイヤーとか、Encodeとかencodingプラグマとか。)を重点的につかみ、(あと色々便利になったことを眺めたりしつつ、)その上で「モダンPerl入門」に進むというのがいいのではないかと。
また、「Perlプログラミング救命病棟」という本で主に取り扱っているのが、「古いPerlコードを引き継いでそれを今風に書き直してメンテナンスする方法」なので、新旧の差分を追いかけるにはいいかも知れません。
ところで今、きれいで実用的なPerlでオブジェクト指向のコードを書こうとしたら何を使うのがいいんでしょう。
あるいは諸氏は何を使われていますか。
(「RubyかPythonに乗り換え」というのはそれはそうなのかも知れませんが。)
「モダンPerl入門」ではMooseが紹介されていましたが、今なお普段書くコードは、素直なblessしたハッシュリファレンスに少し自前で初期化コードとかアクセサ生成コードを足したようなものです。
TIMTOWTDIとはいえ、だからこそ聞いてみたい感じがあります。
Re:まずは基礎固め (スコア:1)
言っても言っても信じてもらえないんですが、今僕の書いているすべてのコード(納品とかしてるものも含め)全部Mooseです :)
Re: (スコア:0)
MooseとかMouseとかShikaがこの先どうなるか分からないので
あまり本腰を入れる気になれないんですよねぇ
早くデファクト決まれ、みたいな
とりあえずMooseは使っていて気に入っていますが
Re:まずは基礎固め (スコア:2)
Shika に関しては既に終了したプロジェクトです。
Mouse に関しても Moose の load 時間やメモリ消費が気になる時に、 Moose の代わりとして使える物です。
基本的には Moose を使う事が強く薦められています。
use Moose した時の速度が気になる CGI などの用途でしたら Mouse を選択するのがありでしょう。
将来的に Moose の読み込み時の速度が向上した等の時には Mouse は用済みのプロジェクトになる事は確定でしょうが
その時の為に直接 Moose/Mouse を使うのではなく Any::Moose というラッパー経由で使うと移行が楽になると思います。
Moose まわりの詳しいお話はこちらの記事とかどうぞ。
http://gihyo.jp/dev/serial/01/modern-perl/0004 [gihyo.jp]
また Mouse を利用して CGI/FastCGI むけのフレームワークの記事もあります。
なんで Mouse を選択したかの説明も次回以降に説明されるかもしれません。
http://gihyo.jp/dev/feature/01/perl_ark/0001 [gihyo.jp]
Re: (スコア:0)
といった情報は、どこを見てればわかるのでしょうか。
Re:まずは基礎固め (スコア:1)
古い人間なので、Class::Accessor::Fast [cpan.org]使ってます。
自家製モジュールはMojo::Base [cpan.org]のコピー品に以下のコードを拡張して、
みたいに使ってます。