I think the lesson to be learned here is simply "don't use augment/inner for anything complicated", which can be whittled down to "don't use augment/inner" if you like.
Basically, it was an interesting feature, but not something I would advise leaning on too heavily. Not only is the implementation problematic, but the semantics are just plain weird (even in the BETA language from which I originally stole it).
| [reply] |
| [reply] |
Ultimately it would be nice if we could make it work properly, but that might be too much to ask from a library. However I will let the current maintainers chew on it a little and see if they can fix it (crazier sh*t has been pulled off in the past).
I think moving to a MooseX:: is probably too extreme and would seriously break backwards compat, and as I said, it works in simple cases. If nothing more, it would require a loooooooong deprecation cycle. So perhaps the better approach is more a matter of documentation updates that better explain the caveats.
Thankfully, only a small percentage of people actually grok this feature and of those people only a handful of them are crazy enough to try and use it.
| [reply] |