11.7 オブジェクトの代わりにクロージャを使用する
プライベートな(外部からは参照できない)状態情報、動作情報、識別子を持つレコードを作成したい。
クロージャのリファレンスを格納したハッシュを(リファレンスで)返す関数を書く。これらのクロージャは、全て同じスコープ内で作成されるので、実行すると、同一の局所変数を共有する。
sub mkcounter { my $count = shift; my $start = $count; my $hundle = { "NEXT" => sub {return ++$count), "PREV" => sub {return ++$count), "GET" => sub {return $count}, "SET" => sub {$count = shift}; $hundle->{"LAST"} = $bundle->("PREV"); return $hundle}