perlをはじめて使う
仕事で初めてperlを使いました。思っていたほど複雑ではないという印象。OOを使ったからかもしれません。呼び出される側のソースコードで、最後に
1;
をつけなければならないところとか、仕様的にちょっと納得いかないところはありますが……。
クラスはpackageを使って定義してあげます。
package ClassSuper;
sub new {
my $class = shift;
my ($arg1, $arg2) = @_;
my $self = {
'arg1' => $arg1,
'arg2' => $arg2
};
bless $self,$class;
}
sub put {
my $self = shift;
print $self->{arg1}, "\n";
}
のような感じ。インスタンス変数はハッシュで表現するようです。Rubyになれているから、行の最後のセミコロンをついつい忘れてしまいます。
サブクラスはこんな感じで定義します。
package ClassSub;
use ClassSuper;
use base qw( ClassSuper );
sub new {
my $class = shift;
my $self = new ClassSuper;
bless $self, $class;
}
sub put2 {
my $self = shift;
print 'arg2: ', $self->{arg2}, "\n";
}
sub put {
my $self = shift;
print 'arg1: ', $self->{arg1}, "\n";
$self->put2();
}
という感じでオーバーライドもできます。親クラスのメソッドを使いたいときは SUPER::method() みたいにSUPERで指定してやります。
はじめてまともにperlに触れてみたけど、なかなかこれもおもしろいですね。