#!/usr/bin/env perl -l use strict; use warnings; use List::Util qw{max}; my %Hash = ( "A" => ["HYU"], "B" => ["TU6"], "C" => [ "11", "09", "88", "2" ], "D" => [ "01", "11" ] ); my @keys = sort keys %Hash; print join ",\t" => @keys; { no warnings 'uninitialized'; for my $i (0 .. max map { $#{$Hash{$_}} } @keys) { print join "\t" => map { $Hash{$_}[$i] } @keys; } } #### A, B, C, D HYU TU6 11 01 09 11 88 2