#!/usr/bin/perl use strict; use List::MoreUtils qw(uniq); use Data::Dump 'pp'; my %files = ( 'ABC' => { 'file1' => 6,'file2' => 5,'file3' => 8, 'file4' => 4, }, 'XYZ' => { 'file2' => 5,'file5' => 6,'file8' => 8, }, ); my @files = uniq map {keys %{$files{$_}}} keys %files; pp \@files;