SYNOPSIS In your plugin's preamble, include the role: with 'Dist::Zilla::Role::RequireFromBuild'; Then in your plugin subroutine, e.g. munge_files(): $self->require_from_build("Foo/Bar.pm"); $self->require_from_build("Baz::Quux"); DESCRIPTION Since build files are not necessarily on-disk files, but might also be in-memory files or files with munged content, we cannot use require() directly. require_from_build() is like Perl's require() except it looks for files not from @INC but from build files $self->zilla->files. It searches libraries in lib/ and .. $self->require_from_build("Foo/Bar.pm") or $self->require_from_build("Foo::Bar") is a convenient shortcut for something like: return if exists $INC{"Foo/Bar.pm"}; my @files = grep { $_->name eq "lib/Foo/Bar.pm" } @{ $self->zilla->files }; @files = grep { $_->name eq "Foo/Bar.pm" } @{ $self->zilla->files } unless @files; die "Can't find Foo/Bar.pm in lib/ or ./ in build files" unless @files; eval $files[0]->encoded_content; die if $@; $INC{"Foo/Bar.pm"} = "(set by Dist::Zilla::Role::RequireFromBuild, loaded from build file)"; METHODS $obj->require_from_build($file) SEE ALSO Require::Hook::DzilBuild