Ok, so the "_nul" will handle and returns that might be sent back. In this case, none will be sent.
So it is like Java's:
public void blahBlah()
{
}
where void is the return type.... right?
private ["_a","_b","_c"];
_a = _this select 0;
_b = _this select 1;
_c = _a + _b;
_c
_m = [1,2] execVM "add.sqf";
_m == 3;
Hope that helps, the fact that he put _nul there has nothing to do with the word, it just means... Null, nothing, if you wished to use the return value, you could still use _nul, but most times you wouldn't for easy reading/debugging.
Variable = Return of Operation.
So if:
"_VAR = 1 + 15" then _VAR = 16, not 1 + 15. And if you do variables inside this, "_VAR = _vA + _vB" then _VAR = whatever _vA and _vB equal at that time, say their both 10, _VAR = 20. If _vA or _vB change to say 2, _VAR will still = 20 unless you do the _VAR = _vA + _vB operation again (which would mean _VAR = 4), as it does not store the variables, it stores the RESULT, or the Return of the Operation.
I think I went a bit off topic...