Yes I do have the Setoption("Explicit","On")
Very good 
Keep it on, it will save you a lot of work and head-scratching.
In short scriptlets posted in response to a query you often won't see setup code like SetOption() and variable declaration as it detracts from the purpose of the sample code.
OK this $sNul bit, you say it is used to catch the return code. Does it catch the return code in a log file?
No.
$sNUL is just a normal variable like any other. I use $sNUL, $sDISCARD, $IGNORE or something similar so that it is both obvious and explicit that I don't intend to do anything with the value. Many times you will see people using the un-named variable "$" to suppress the return value.
As it is a normal variable you can decide what you want to do with it - write it to the console, put in in a log file, display a pop-up message, branch the script code or whatever.
In example scriptlets we suppress the return value. In production you may want to check it for success (also see the @ERROR and @SERROR macros) and perform some sort of action if it has failed.