というようなエントリーをちらほら見かけた。
で、今日、Amazonからうちにも届いた。
Mooseが面白そうなので、最初からソースを自分で入力してみることにした。
自分で書くほうがソースを何度も見る(読む)事にもなるし、実際に動くところを見るのもよさそうだったから。
「use Moose」で自動的にstrictになる、というのが不思議。
とはいえ、「use strict」を書かないのも気持ち悪く、微妙な気持ちだが、慣れればそんなものかも。
ちなみに既に正誤表が用意されているようです。
『モダンPerl入門』正誤表
そういえば、一つ動かないソースがありました。
p14
sub write_response {
my ($self, $client, $request) = @_;
print $client scalar(localtime), " ";
$self->SUPER($client, $request);
}
これを実行すると、クライアントからリクエストを打つとエラーで止まりました。
Can't locate object method "SUPER" via package "TimestampedEchoServer" at TimestampedEchoServer.pm line 11, <GEN1> line 1.
この間違いは単純なもので、正しくはSUPERの先に関数名が必要です。
sub write_response {
my ($self, $client, $request) = @_;
print $client scalar(localtime), " ";
$self->SUPER::write_response($client, $request);
}
まあ、Mooseを使うのであれば、before等を使うほうが良いでしょうね。



コメントする