# 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
---------------------------------------------------