# http://prometheus.frii.com/%7Egnat/yapc/2000-stages/slide47.html # (Nathan Torkington on Opaque Objects) sub new { my $value = 0; bless sub { local $_ = shift; /get/ and return $value or /set/ and $value = shift or die "Unknown method: $_"; }, shift; } sub get { +shift->("get", @_) } sub set { +shift->("set", @_) }