http://qs1969.pair.com?node_id=360404

package strict;

$strict::VERSION = "1.03";

my %bitmask = (
refs => 0x00000002,
subs => 0x00000200,
vars => 0x00000400
);

# refs & subs & vars
my $default = 0x00000602;

sub bits {
    my $bits = 0;
    foreach my $s (@_){ $bits |= $bitmask{$s} || 0; };
    $bits;
}

sub import {
    shift;
    $^H |= @_ ? bits @_ : $default;
}

sub unimport {
    shift;
    $^H &= ~ (@_ ? bits @_ : $default);
}