Subject: | CPAN::Shell->install and CPAN::Shell->expandany($mod)->install are not the same. |
The docs claim...
CPAN::Shell->install($mod); # same thing
CPAN::Shell->expandany($mod)->install; # same thing
CPAN::Shell->expand("Module",$mod)->install; # same thing
CPAN::Shell->expand("Module",$mod)
->distribution->install; # same thing
But they're not. The first calls (I believe) CPAN::Bundle->install and
the rest call (I believe) CPAN::Distribution->install. The important
difference appears to be that CPAN::Bundle->install calls rematein()
while CPAN::Distribution->install does not. Without this, following
prerequisites does not work. For some reason when
CPAN::Shell->expandany($mod)->install; is used unsat_prereq is called
twice during a module's installation, sponsored_mods is already set and
CPAN.pm thinks something else is already taking care of it.
See [rt.cpan.org 21139] for an example of a problem this caused.