But aren't there other ways to invoke the function in which that will not be true?
Yes. The only difference between a subroutine call, a static method call, a virtual object method call and a non-virtual object method call is in how the sub is called. If it's called improperly, it's a bug, and it will result in buggy behaviour.
What about bar::woot() ???
bar::woot() doesn't exist, so you'll get a run-time error.
| [reply] [d/l] |