Start # This is sublist #1 Alpha # $p->{'Alpha'}->{'1'} => 1 Beta # $p->{'Beta'}->{'1'} => 2 Start # This is sublist #2 Epsilon # $p->{'Epsilon'}->{'2'} => 1 Zeta # $p->{'Zeta'}->{'2'} => 2 Start # This is sublist #3 Beta # $p->{'Beta'}->{'3'} => 1 Gamma # $p->{'Gamma'}->{'3'} => 2 Zeta # $p->{'Zeta'}->{'3'} => 3 Start # This is sublist #4 Alpha # $p->{'Alpha'}->{'4'} => 1 Gamma # $p->{'Gamma'}->{'4'} => 2 Delta # $p->{'Delta'}->{'4'} => 3 Epsilon # $p->{'Epsilon'}->{'4'} => 4 would give a hash like: $p = { 'Alpha' => { # Note 'Alpha' doesn't appear in sublist #2 or #3 1 => 1, # Alpha is #1 in the 1st sublist 4 => 1, # Alpha is #1 in the 4th sublist }, 'Beta' => { 1 => 2, 3 => 1, }, 'Epsilon' => { 2 => 1, 4 => 4, }, 'Zeta' => { 2 => 2, 3 => 3, }, 'Gamma' => { 3 => 2, 4 => 2, }, 'Delta' => { 4 => 3, }, };