# from Christopher J. Madsen
# on Tuesday 19 February 2008 17:23:

>Is there a better way to do this?

I think it might be better to just set them all at the same version 
number or else break them into separate distributions.  This would make 
it easier to report bugs and diagnose remote problems because all you 
have to do is check the most recent dist version rather than consult a 
table of "most recent shipped versions per-module".

That said, I also think *maybe* M::B should look for a version in a 
like-named .pm file and fallback to dist_version -- unfortunately this 
would all be happening on the install side, so you would have to 
configure_requires a newer M::B.  That's also a lot of runtime effort 
and code complication on the install side to find what would typically 
be the same number as the dist_version, so a more optimal setup might 
be to get those numbers from the META.yml -- but now we're in another 
bag of worms entirely :-/

>Is it safe to set $self->{properties}{dist_version} like that, or do I
>need to override the dist_version method also?

Well, it hinges on some details in the internals, and whenever you do 
that, you have to accept the associated fragility.

Also, in general it is better to use local() for dynamically scoped 
overrides to hash values.  This saves you from the case of being inside 
an eval() where the SUPER:: call dies and the value doesn't get reset.

But, probably simplest/easiest to just go with the grain.

--Eric
-- 
"It is impossible to make anything foolproof because fools are so 
ingenious."
--Murphy's Second Corollary
---------------------------------------------------
    http://scratchcomputing.com
---------------------------------------------------

Reply via email to