#! /usr/bin/perl use strict; use warnings; use Data::Dumper; # Data Structure my %h = ( 'a' => 'z', 'b' => 'y', 'c' => 'x', 'd' => 'w', ); my @to_keep = qw{ a c }; my %keepers = map { $_ => 1 } @to_keep; foreach ( keys %h ) { if ( !exists $keepers{$_} ) { delete $h{$_}; } } $Data::Dumper::Varname = 'h'; print Dumper( \%h ); $h1 = { 'c' => 'x', 'a' => 'z' }; #### my @to_keep = qw{ a c }; my %keepers; foreach ( @to_keep ) { $keepers{$_}++; } $Data::Dumper::Varname = 'keepers'; print Dumper( \%keepers ); keepers1 = { 'c' => 1, 'a' => 1 }; #### my @to_keep = qw{ a c }; my %keepers; %keepers = map { $_++ } @to_keep; $Data::Dumper::Varname = 'keepers'; print Dumper( \%keepers ); $keepers1 = { 'a' => 'c' };