質問
PerlはOOP特徴が、やなどが使用されることが少ない。いの作成と使用Perlオブジェクトの方法と。
解決
きっく Moose
.
package Point;
use Moose; # automatically turns on strict and warnings
has 'x' => (is => 'rw', isa => 'Int');
has 'y' => (is => 'rw', isa => 'Int');
sub clear {
my $self = shift;
$self->x(0);
$self->y(0);
}
ムースきん)はコンストラクタにアクセス用メソッドは、型チェックを無料!
そこでコードでは以下の操作が可能です。
my $p = Point->new({x=>10 , y=>20}); # Free constructor
$p->x(15); # Free setter
print $p->x(); # Free getter
$p->clear();
$p->x(15.5); # FAILS! Free type check.
を進めていくうえで良い出発点が Moose::Manual
や Moose::Cookbook
だが必要な基本的なものも利用できます Mouse
ないとして完全なものには、コンパイル時ます。
他のヒント
ムース, エントリーのページ.
package Person;
use Moose;
has age => ( isa => Int, is => 'rw');
has name => ( isa => Str, is => 'rw');
1;
直ちに、無料の新()メソッドは、アクセス用メソッドの属性だけを定義が'.なので、と言ってもいいでしょう:
my $person = Person->new();
$person->age(34);
$person->name('Mike');
print $person->name, "\n";
います。なおアクセス用メソッドに来型チェックのための無料(定義することができ独自の種類などに標準。プラスす'広'のためには、サブクラス"と"の役割-特徴、すべての方法その他の詳細ができるか実際の仕事を書い保守性OOのコードです。
TMTOWTDIものですが、この作品。
現在使ってい オブジェクト::InsideOut また、物そのも嬉しんでいただき、多くの適切な利用により、トータルコスに恵まれたハッシュオブジェクト。とはいえ、また新しいプロジェクトかを真剣に見るムー.
のではないのかPERLの文書は、 ない をお勧めしての役割ご自身のオブジェクトの枠組み、またはビルを用いて物体のハッシュ、それを魅力的に道路や"ピークの直接のオブジェにおいて、"プライベートな"変数を完全に破れのカプセル化する食い込みだいたい場合、refactorのオブジェクトです。
Perl物だけでなく恵まれたハッシュ.その恵まれた参照です。できやよくしてあげられるように努めて恵まれたハッシュを参考に、もっと簡単に恵まれたスカラーまたは配列の参照です。
おすすめする今日はムーたいのであればOOにPerlです。しかし、寒暖の差が激しいので皆様もなければならないときに便利でイン(OO含ます。えてもらうことができPerl OO作品の背後にある実装では、しっかりとした概要を自分のブログ: http://augustinalareina.wordpress.com/2010/06/06/an-introduction-to-object-oriented-perl/
からのデータ構造の視点は、オブジェクトの参照イキャストならではの特徴です。の通訳者からの特別の参照オブジェクトとしていて"に恵まれ"をキーワード"を祝福".恵まれた参考文献を含むを示すフラグとして利用して、オブジェクトです。基本的にこれを定義することができ、通話方法。
のためのインスタンス作成した場合の基本hashrefのこない作品:$hashref->foo();
ものの機能を利用した場合に恵まれたhashref(通称、オブジェクト)これは仕事:$blessed_hashref->foo();
ザムースに優れたモジュールOOP Perlで作成法的効力を持OO層automagically取り扱うアクセス用メソッドだけを定義するバsetterか、セッター.について興味のある方はもちろん使用Devel::ピークのPerlインタプリタの店舗物のリンクをブログに掲載します。
一足、各クラスは、パッケージには、きの確立(複数の場合は希望者のみ)相続による設定パッケージに変 @ISA (好ましくはコンパイル時間);を作成しますオブジェクトから、既存のデータ(多くはないが、匿名のハッシュを用いるインスタンス変数) 祝福参考[,CLASSNAME]);呼び出すオブジェクトのメソッドのよう$obj->methodname(@(<%=ARGS%>等:ARGS)とクラスメソッドのように"CLASSNAME"->methodname(@(<%=ARGS%>等:ARGS).複数の継承に使用するためだけのものを変えることのできる利用 析.
これはやばいないので、力を封止が多くの異なるモジュールの提供又は相異なり可能です。