use Data::Dumper; use Tie::Subset::Hash::Masked; my @unwanted = qw/ schema log /; my %hash = ( schema=>1, log=>2, aa=>3 ); tie my %masked, 'Tie::Subset::Hash::Masked', \%hash, \@unwanted; print Dumper(\%masked); __END__ $VAR1 = { 'aa' => 3 };