あまり詳しくないのですが、Perlでもオブジェクト指向的なコーディングができます。それの覚え書きです(2004/08/09現在、勉強初日っ)。 クラスの書き方 †どうもPerlの言語仕様をライブラリで拡張して、オブジェクト指向対応にしました、的な感触を受けたのですが(私がよく理解してないだけでしょうね)、こんな書き方をするみたいです。 package Class1; # クラス名 sub new { #コンストラクタ $pkg = shift; #クラス名がはいる return bless {}, $pkg; #<-Class1インスタンスへの参照を返す、の意味らしい。 } sub hoge { #メソッド return "Hello Perl World."; } 1; #これは何だろう。。。 これをClass1.pmという名称で保存しておきます。呼出側は、 #!/usr/bin/perl -w package main; use Class1; my $obj = Class1->new; print $obj->hoge; とすればインスタンス化、メソッド呼出というクラス的な使い方ができます。 フィールドを宣言とか、フィールドをメソッド内で共有する †Perlではフィールドへのアクセス*1は #Class1クラスの作成 package Class1; #コンストラクタ sub new { my $class = shift; my $self = { X => 10, Y => 100 }; #結局はこのself変数がJavaのthisなので、 #この中の変数達がフィールドと考えるのかなぁ? return bless $self, $class; #<-Class1インスタンスへの参照を返す、の意味らしい。 } #メソッドの宣言 sub hoge { my $self = shift; #これは自分への参照を取得している return "$self->{X} :$self->{Y}\n"; #this.Xとかthis.Yってか? #でも""の中なんですけど... #追記:Perlってこういうもんなんだって。 } 1; この記事は 現在のアクセス:5104 |