I would conclude our code review meeting by reaching for a towel to wipe the egg off my face. :)
...and I would ensure you save face by asking for your expert opinion on what you would do if you were me when this situation recurs...
Which of these do you suggest I use and why? I am not entirely sure of the practical differences.
our $VERSION = '0.1_1';
$VERSION = eval $VERSION;
or perhaps
our $VERSION = '0.1_1';
$VERSION = eval { $VERSION };
or maybe
use version;
our $VERSION = version->parse('0.1_1');
or something else entirely...
I believe that eval { ... }; is compiled just once whereas eval ...; is compiled each time the module is instantiated. This may make a difference if the module is created for each use like MIME::Lite. However, this module should only be created once and subsequent method calls achieve everything it does.
I don't see the point in fetching in the version module (even though it is core) to do something that can be done in two lines of simple code. Perhaps it does something more that I'm not aware of?