http://www.perlmonks.org?node_id=11126634

Bod has asked for the wisdom of the Perl Monks concerning the following question:

I've been reading some of the Perl Advent Calendar trying to expand my learning.

On this day there is the problem of Cyber-Santa having to create classes of either Robo-Reindeer or Bio-Reindeer depending on which is available. The module tries to use Robo-Reindeer but if they are not available because their lamp batteries are not charged (or the module just isn't installed) then use Bio-Reindeer instead.

I think I understand what this Reindeer Factory Class does and why it might be useful in other languages. However, in Perl we have CPAN from which we install our modules...this allows us to specify dependencies be be installed when we install our module.

In this Perl Advent Calendar example, why would we create a ReindeerFactory instead of just forcing our module to install Robo-Reindeer if that's the one we prefer?