in reply to concatenating partially uninitialized values

If all you want to do is deal with the warning:

my $outPath = $obj->{outpath}{absolut} . "-" . ( $obj->{sap}{jfExtNum} + || '' );
will use a default value of '' when the jfExtNum fails to have a true value (which is when it's undefined, or empty, or zero). That last case may or may not be an issue.

But observe (again!) that your two code samples are not equivalent, as the second one omits the hyphen as well as the trailing number.

--
Tommy
Too stupid to live.
Too stubborn to die.