仕事で初めて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に触れてみたけど、なかなかこれもおもしろいですね。