Disallow numbers in imports for consistency with Sub::Exporter
authorToby Inkster <tobyink@cpan.org>
Sat, 9 Mar 2013 16:21:03 +0000 (10:21 -0600)
committerArthur Axel 'fREW' Schmidt <frioux@gmail.com>
Sat, 9 Mar 2013 16:25:31 +0000 (10:25 -0600)
commitd9568f3addf9f9abf5f9e6dc4821a08f008c4d43
tree7daddeaf45c8996fa6d66571904cd1b66591aad5
parent812076b6eb3efb0d404a089d13792957fc080ad9
Disallow numbers in imports for consistency with Sub::Exporter

Exporter.pm does this silly thing where it interprets import arguments
starting with a digit as being a version check.

For example, given this, Exporter.pm will check that Carp.pm's version
number is at least 1000 (unlikely!)

   $ perl -e'use Carp carp => "1000"'

If the number appears first in the import list, Perl will already do
this for you, not involving Exporter.pm at all:

   $ perl -e'use Carp 1000, "carp"'

So it's not obvious why this feature was included in Exporter.pm at all.
Not many people seem to have noticed the feature is even there, though
it is documented. (However, the documentation of it does not quite match
its implementation!)

Anyhow, this feature seems a bad idea to use, and more importantly it
leads to a difference between how Exporter.pm and Sub::Exporter work.
Sub::Exporter::Progressive should attempt to smooth over such differences,
so it should I<always> die in this situation, whether Exporter.pm or
Sub::Exporter is being used.
lib/Sub/Exporter/Progressive.pm
t/version-check.t [new file with mode: 0644]