use Text::Table; my @cols = keys %seen_queries; my $tb = Text::Table->new(@cols); for my $subject (keys %$matrix) { $tb->load( [ @{$matrix->{$subject}}{@cols} ] ); } print $tb;