Generator.pm 664 B

12345678910111213141516171819202122232425262728
  1. package Logos::Patch::Source::Generator;
  2. use strict;
  3. sub new {
  4. my $proto = shift;
  5. my $class = ref($proto) || $proto;
  6. my $self = {};
  7. $self->{OBJECT} = shift;
  8. $self->{METHOD} = shift;
  9. my @args = @_;
  10. $self->{ARGS} = \@args;
  11. bless($self, $class);
  12. return $self;
  13. }
  14. sub eval {
  15. #no strict 'refs';
  16. my $self = shift;
  17. my @args = @{$self->{ARGS}};
  18. splice(@args, 0, 0, $self->{OBJECT}) if $self->{OBJECT};
  19. return Logos::Generator::for($self->{OBJECT})->can($self->{METHOD})->(@args);
  20. #my $thunk = Logos::Generator::for($self->{OBJECT})->can($self->{METHOD})-(>${$self->{ARGS}});;
  21. #my $mname = $self->{METHOD};
  22. #return $thunk->$mname(@{$self->{ARGS}});
  23. }
  24. 1;