Remove warning for when modules don't do $VERSION = eval $VERSION.
Chris Nehren [Tue, 7 Aug 2012 21:38:13 +0000 (17:38 -0400)]
In a non-trivial number of cases this will be triggered on code one
doesn't have any control over, and thus can't really fix--the verbosity
therefore doesn't actually provide any benefit to the user. In the
original use case (Module::Build::ModuleInfo) this sort of warning makes
good sense as a sanity check for authors. It has no place in a general
purpose library, though.

... not to mention the bloody thing was an unless/else block. Seriously?
And the warning did not at all communicate what the actual problem was.
Bad UX all around.

lib/Module/Metadata.pm

index 72c6ffa..55d4c2c 100644 (file)
@@ -558,14 +558,6 @@ sub _parse_fh {
        unless ( defined $vers{$vers_pkg} && length $vers{$vers_pkg} ) {
          $vers{$vers_pkg} =
            $self->_evaluate_version_line( $vers_sig, $vers_fullname, $line );
-       } else {
-         # Warn unless the user is using the "$VERSION = eval
-         # $VERSION" idiom (though there are probably other idioms
-         # that we should watch out for...)
-         warn <<"EOM" unless $line =~ /=\s*eval/;
-Package '$vers_pkg' already declared with version '$vers{$vers_pkg}',
-ignoring subsequent declaration on line $line_num.
-EOM
        }
 
       # first non-comment line in undeclared package main is VERSION