# from Shlomi Fish # on Monday 04 August 2008 04:14: >> But a patch demonstrating what you want would probably be more >> convincing, in that we could much better understand what it is you >> want. > >I think I can accomplish that using a sub-class, so that will be my > first lead. I'll also do it TDD-style, so you can understand what I > mean using the tests.
Just write some code that does what you want to do. I recommend that it is neither a patch nor a subclass. #META.in.yml add_to_cleanup: - Math-Vec-* - META.yml create_makefile_pl: passthrough dist_version_from: lib/Math/Vec.pm license: perl module_name: Math::Vec test_requires: Test::More: 0 # Build.PL ... use YAML; my $builder = $build_class->new( %{YAML::LoadFile('META.in.yml')}, ); Done? Of course there's the hang-up that not all build parameters turn into META.yml, so it would be nice to have some parallels between them instead of needing to put a meta_merge in your META.in.yml. There is the problem of now needing configure_requires => YAML, but you might as well since patching Module::Build::YAML to support Load() would just mean adding a configure_requires for a newer M::B. The point is to minimize the barrier to installation without being totally bored as an author, so maybe just have a Build.PL.in template and a tool to instantiate the Build.PL. $template =~ s/^\s*# PARAMETERS GO HERE.*$/$params_string/m; Obviously, not all dependencies can be static - thus the Build.PL and the dynamic_config flag. But your tool could certainly just conjure a stock Build.PL boilerplate if it doesn't find a Build.PL.in file. We've also talked about a META.local.yml file as a way for the installer toolchain to have a more uniform handling of dynamic_config => 1. In theory, I could set dynamic_config => 0 in my META.yml and quit shipping a Build.PL file, right? Ah well, one can dream. By the way, saying "because I want to" is a terrible answer to "why?". Perhaps you hove some reason like being able to automate module publishing, simplifying input data, or eliminating troubles with stale templates. I've probably had 2-3 episodes of hacking together some shell and perl translations to my Build.PL files (of which there are 60+ in my checkouts dir atm.) --Eric -- Minimum wage help gives you minimum service. --David Schomer --------------------------------------------------- http://scratchcomputing.com ---------------------------------------------------