use strict; use Text::Table; my $best = {'key1'=>[1,2,3],'key2'=>['f','g','h'],'el1'=>['y','z','z1']}; my $keep_best = {'key1'=>[4,5], 'el1'=>['w','x'],'key2'=>['i','j','k']}; my $table = Text::Table->new("key\n---","BEST\n----","KEEP BEST\n-------"); foreach my $key (sort keys %$best){ $table->add($key,@{$best->{$key}}[$_],@{$keep_best->{$key}}[$_]) for (0..$#{$best->{$key}}); } print $table;