22章 Perlでオブジェクト指向 メンバー関数の書き方

ファイル名:Human.pm

package Human;
###########
sub new
{
my $class = shift;
my $args = shift;
my $self = {};
bless($self, $class);
return $self;
}
###############
sub calc
{
my $self = shift;
my $a = shift;
my $b = shift;
my $c = $a + $b;
print “Human->calc = $c \n”;
}
###############
sub calc3
{
my ($self, $x,$y) = @_ ;

my $c = $x + $y;
print “Human->calc3 = $c \n”;
}
#############
sub calc4
{
my ($self, $j,$k) = @_ ;
print “Human->calc4 next “;
$self->calc3($j,$k);
}
##############
1;

 

メンバー関数で大事なことは、引数の先頭に$selfをつけることです。
引数の書き方はcalc()のようにsiftでも、
calc3()のように配列でも書けます。
@_ は引数を収めた予約配列です。

calc4は自分のメンバー関数calc3()を使う方法を示しています。
自分のメンバー関数を呼び出すには、$sel->関数 とします。
$self->calc3($j,$k);
のように記述します。

実行ファイル名:test1.pl

 

use Human;my $man = Human->new();
$man->calc(1,2 );
$man->calc3(3 , 4 );
$man->calc4(10,20 );

実行結果:

>perl test1.pl

Human->calc = 3
Human->calc3 = 7
Human->calc4 next Human->calc3 = 30