CHECK { my $dp = B::Deparse->new(); while (my ($pkg, $hash) = each %INTERFACES) { while (my ($var, $glob) = each %{"${pkg}::"}) { next unless defined &$glob; croak "Constructor detected: ${pkg}::$var" if $dp->coderef2text(\&{"${pkg}::$var"}) =~ /\bbless\b/; } } }