>  2001/02/18 (日) 13:03:20        [mirai]
> > サンクスコ
> > でも違ったみたい
> 
> bless { name => shift }, $class;
> これと
> $debug->clear;
> コレって何してるんですケ(?ー`)ノ

bless関数
 bless関数は、リファレンスとパッケージ名を引数とします。
第1引数で与えられたリファレンスが指すオブジェクトは、
第2引数で指定したクラスに所属します。
第2引数のパッケージ名はオプションで、
省略すると現在のパッケージ名を引数とします。

$debug->clearすると
新しく作ったオブジェクト$debugのメソッドclearを呼び出す
さっきの場合だとdebug.logを空にする関数をメソッドを呼び出す

perlのoopのサンプルコード

# Circle のパッケージ名を設定
package Circle;

# Circle のクラスメソッド(コンストラクタ)
sub new{
    # 暗黙のうちに引き渡されるパッケージ名を受け取る
    my $class = shift;

    # 任意の引数を受け取る
    my( $x, $y ) =@_;

    # 第1引数に連想配列のリファレンスを指定、
    # 第2引数にパッケージ名を指定
    bless { pos=>[$x, $y] }, $class;
}

# Circleのインスタンスメソッド
sub position{
    my $self = shift;
    if ( @_ ){
        $self->{pos}[0] = @_[0];
        $self->{pos}[1] = @_[1];
    }
    return @{ $self->{pos} };
}

package main;

my $circle = new Circle;


参考:2001/02/18(日)12時56分21秒