The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

use strict;
use warnings;
use Test::More;

BEGIN {
   package AAA;
   our $VERSION = 2;
   use Sub::Exporter::Progressive -setup => {
      exports => ['aaa'],
   };
   sub aaa { 'aaa' };
   $INC{'AAA.pm'} = __FILE__;
};

ok(eval('use AAA 1; 1'), 'perl built-in module version check');

{
   local $@;
   ok(!eval('use AAA 3; 1'), 'perl built-in module version check');
   like(
      $@,
      qr/^AAA version 3 required/,
      'perl built-in module version check error message',
   );
}

{
   local $@;
   ok(
      !eval('use AAA aaa => 1; 1'),
      'Exporter.pm-style version check',
   );
   like(
      $@,
      qr{^cannot export symbols with a leading digit: '1'},
      'Sub::Exporter::Progressive error message',
   );
}

done_testing;