in reply to eval inside an object

it says that all local and global vars will be defined in the eval space

$self is not local or global, it's a lexical variable!... though, I recall seing some patch for this in p5p, maybe its supported in the development version of perl (currently 5.9.2).

Anyway, you don't need eval for what you are trying to do, use

$method_name="foo"; $self->$method_name(@args);

Replies are listed 'Best First'.
Re^2: eval inside an object
by dave_the_m (Monsignor) on Apr 27, 2005 at 17:47 UTC
    $self is not local or global, it's a lexical variable!... though, I recall seing some patch for this in p5p, maybe its supported in the development version of perl (currently 5.9.2).
    The lexical scope bugs I've fixed in the 5.9.x branch aren't applicable here; a simple eval executed immediately (as opposed to later via a closure) has always been able to see variables in its immediate enclosing scope.

    Dave.