User:Kentnl/PerlBinAlternatives

The current strategy we have for managing binaries in /usr/bin/ is bit rough and confusing.

Proposal
/usr/libexec/perl/ /usr/libexec/perl/10-native/ /usr/libexec/perl/20-perl-core/ /usr/libexec/perl/30-dev-perl/ /usr/libexec/perl/40-misc/

dev-lang/perl/*.ebuild installs all bin scripts into

/usr/libexec/perl/10-native/

perl-core/*/*.ebuild install all bin scripts into

/usr/libexec/perl/20-perl-core/

dev-perl/*/*.ebuild install all bin scripts into

/usr/libexec/perl/30-dev-perl/

Everything else that installs things that *might* need alternatives support into

/usr/libexec/perl/40-misc/

Or similar, packages can define their own place if they really want to.

Package Post Install / Package Post Remove
1. Iterate `/usr/libexec/perl/*` in numerical order 2. Generate a  pair for all entries where "dirname" is the leaf of the "last seen instance of  " 3. Compare with existing pair-list to determine  values that should be unlinked 4. Compare with existing pair-list to determine which  values should be re-linked 5. Compare with existing pair-list to determine which  values should be created 6. Execute indicated actions gathered from steps 3-5 7. Replace old pair-list with new pair-list