$excel{$tab}{$row}{$col} = $cell->{Val}; ... foreach my $tab_name (keys %excel) { # Only intersted in "Customers" tab. next if $tab_name ne 'Customers'; my $rows = $excel{$tab_name}; foreach my $row_name (sort { $a <=> $b } keys %$rows) { my $cols = $rows->{$row_name}; # Not interested in rows where the first cell is blank. next if !$cols->{A}; ...[ Do something with %$cols ]... } }