Method.pm 475 B

123456789101112131415161718192021222324252627
  1. package NIC::Tie::Method;
  2. use parent qw(Tie::Scalar);
  3. sub TIESCALAR {
  4. my $class = shift;
  5. my $for = shift;
  6. my $method = shift;
  7. my $self = { FOR => $for, METHOD => $method };
  8. bless($self, $class);
  9. return $self;
  10. }
  11. sub FETCH {
  12. my $self = shift;
  13. my $obj = $self->{FOR};
  14. { unshift @_, $obj; goto &{$self->{FOR}->can($self->{METHOD})}; }
  15. }
  16. sub STORE {
  17. my $self = shift;
  18. my $obj = $self->{FOR};
  19. { unshift @_, $obj; goto &{$self->{FOR}->can($self->{METHOD})}; }
  20. }
  21. 1;