in reply to Interpret $? variable

Yes,
The return value of "zero" usually means success.

Something other than "0" usually means "Oops -
problem with an error code".

The error code is deterministic, but depends upon
the error codes for that subroutine.