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

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

Unfortunately we have some servers with perl 5.6 and 5.8 on them. I want my script to be able to still run with the older versions, but if it is running something newer I want it to use an efficient module. So basically I want to do something like:
if ($] > 5.010) { use Super::Cool::Module; $supercool = 2; } elsif (($] <= 5.010) && ($] > 5.008)) { use Almost::Cool::Module; $supercool = 1; } elsif ($] <= 5.008) { print "No module available for this ancient perl\n"; $supercool = 0; ## insert code here to duplicate the functionality of the newer module +s. } ### then later in the code if ($supercool == 2) { # do stuff with the super cool functions } elsif ($supercool == 1) # do stuff with the less cool functions } else { # 10000 lines of code to implement the super cool functions in ancient + perl. }
Is this really the best way to go? Just doing this psudocode here looks really messy to maintain.