my @old_hashes; my @new_hashes; my @wanted_keys = qw/foo bar baz/; #etc @new_hashes = map{ my $x = $_; +{ map { $_=>$x->{$_} } @wanted_keys } } @old_hashes; #### 6 2 78 testing stuff 0 69.68.119.54:28960 34756 25000 7 4 118 [:EsU:]|BLaZE| 0 24.86.4.164:28960 7248 5000 6 2 78 tessssssstinggggggggggg REAAAAA 40 69.68.119.54:28960 34756 25000 #### my @cols = m/ (\d{1,3}) \ + (-?\d+) \ + (\d{1,4}|CNCT) \ (.+?)(?:\^7)? \ + (\d{1,6}) \ (\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}:-?\d{1,5}) \ + (\d{1,5}) \ + (\d{3,5}) /x; #### "6", "2", "78", "testing stuff", "0", "69.68.119.54:28960", "34756", "25000" "7", "4", "118", "[:EsU:]|BLaZE|", "0", "24.86.4.164:28960", "7248", "5000" "6", "2", "78", "tessssssstinggggggggggg REAAAAA", "40", "69.68.119.54:28960", "34756", "25000"