OOP
C:\>perl -e "sub makeCounter { my $class = shift; my $self = {}; bless $self, $c lass; $self->{count} = 0; return $self; } sub push { my $self = shift; $self->{c ount}++; print $self->{count}; return $self; } main->makeCounter()->push()->push ()->push();" 123
とりあえずカウンタを作ってみた。
sub makeCounter { my $class = shift; my $self = {}; bless $self, $class; $self->{count} = 0; return $self; } sub push { my $self = shift; $self->{count}++; print $self->{count}; return $self; } main->makeCounter()->push()->push()->push();
はまったところ。blessをbressと書いていて不思議なエラー。return $self;をreturn self;と書いていてselfってパッケージはないぞ、ってエラー。
後者は return self;がbarewordで文字列を返して、blessedでない文字列に大して->を使ったのでパッケージ名と解釈されたと言うことかな。