... if (defined ($eSheet->{Cells}[$row][0] )) { $master_key=($eSheet->{Cells}[$row][0]->Value); $r=$row; print "Found (new) master key '$master_key' in row $r\n"; } else { $master_key=$master_key; print "No (new) master key found in row $row, keeping current master key '$master_key' from row $r\n"; } ... if (defined $eSheet->{Cells}[$row][$col]) { $val=($eSheet->{Cells}[$row][$col]->Value); print "Found valid value for '$key' in ($row,$col): '$val'\n"; } else { $val=$eSheet->{Cells}[$r][$col]->Value; print "Found invalid/empty value for '$key' in ($row,$col), reusing the value from ($r,$col): '$val'\n"; } #### foreach $row( 1 .. $eSheet->{MaxRow} ) { if (defined ($eSheet->{Cells}[$row][0] )) { $master_key=($eSheet->{Cells}[$row][0]->Value); $r=$row; } else { $master_key=$master_key; } ... #### foreach $row( 1 .. $eSheet->{MaxRow} ) { if (defined ($eSheet->{Cells}[$row][0] )) { $master_key=($eSheet->{Cells}[$row][0]->Value); $r=$row; } else { $master_key=$master_key; }