eval q{sub foo{print "Hello World"}} # or, somewhat cleaner, with Perl checking your # syntax at compile time: { no strict 'refs'; *{__PACKAGE__ . "::foo"} = sub { print "Hello World"; }; }; # ... and many more methods