in reply to Testing of exception during import

IMHO testing is one of those places where you can break some of the "rules" like "don't use stringy eval" or "don't check the boolean status of $@ to see if the eval failed or not". The following works on your example code:

use warnings; use strict; use Test::More tests=>12; ok ! defined eval "use My::Test; 1"; like $@, qr/\bNumber of import parameters is wrong\b/i; ok ! defined eval "use My::Test qw/foo/; 1"; like $@, qr/\bNumber of import parameters is wrong\b/i; ok ! defined eval "use My::Test qw/foo bar/; 1"; like $@, qr/\bNumber of import parameters is wrong\b/i; ok ! defined eval "use My::Test qw/foo bar quz baz/; 1"; like $@, qr/\bNumber of import parameters is wrong\b/i; ok ! defined eval "use My::Test qw/foo bar quz baz blah/; 1"; like $@, qr/\bNumber of import parameters is wrong\b/i; ok defined eval "use My::Test qw/foo bar quz/; 1"; ok !$@;