use Foo; my ($foo) = grep {/Foo\.pm$/} values %INC; { # so that local can be local local @ARGV = $foo; local $/; eval "#line Foo.pm 1\nuse bytes;" . <>; } die $@ if $@; print Foo::len(); # prints 2