package StrictDisallow; no warnings; BEGIN { require strict; *o_import = \&strict::import; *strict::import = \&n_import } our %disallow; our @stricts = qw(refs subs vars); sub import { shift; my $namespace = shift; return unless $namespace && @_; %disallow = (%disallow,$namespace,[@_]); } sub n_import { my $caller = caller; if (exists $disallow{$caller}) { my $class = shift; my %temp; if (@_ == 1) { @temp{@stricts} = (); } else { @temp{@_} = (); } delete @temp{@{$disallow{$caller}}}; return unless %temp; @_ = ($class,keys %temp_hash); } &o_import; } 1; #### #!/usr/bin/perl -w use strict; use StrictDisallow Term::Cap => "refs"; ...