No, that's not right. Internals::functions may be used by user-code but only by code that allows that perl internals are allowed to change from version to version. The B:: modules exist so that perl isn't a black box and to allow people access to the guts if they really need to be there.