package Foo; use strict; sub new{ return bless {}, shift; } sub foo{ my $self = shift; print "Foo called\n"; } sub bar{ my $self = shift; print "Bar called\n"; my $code = "\$self->foo()"; # it won't work withouth the "\" eval $code; } 1; #### use strict; use warnings; use Foo; my $c = Foo->new(); $c->foo(); $c->bar(); __OUTPUT__ Foo called Bar called Foo called