changed which() behaviour to return undef even for explicit paths if they do not exist same as core util