use Module::Build; use Parse::RecDescent; my $class = Module::Build->subclass(code => <<'EOF'); sub ACTION_build { my $self = shift; open FILE, "grammar" or die "could not open \"grammar\": $!"; my $grammar; { local $/; $grammar = ; } Parse::RecDescent->Precompile($grammar, "My::Grammar"); $self->SUPER::ACTION_build; } EOF