in reply to concatenating partially uninitialized values

It is not equivalent! With the second code version you don't concatenate the '-' when the obj->{sap}{jfExtNum} is not defined.