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.
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