From: Chris Nehren Date: Tue, 7 Aug 2012 21:38:13 +0000 (-0400) Subject: Remove warning for when modules don't do $VERSION = eval $VERSION. X-Git-Tag: release_1.0.10_001~1 X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=1ea19210f08029ade9207da0ba740cc80fbe663c;p=p5sagit%2FModule-Metadata.git Remove warning for when modules don't do $VERSION = eval $VERSION. 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. --- diff --git a/lib/Module/Metadata.pm b/lib/Module/Metadata.pm index 72c6ffa..55d4c2c 100644 --- a/lib/Module/Metadata.pm +++ b/lib/Module/Metadata.pm @@ -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