And this is why you aren't supposed to futz with @ISA directly. use base 'Bar'; would have done the right thing for you. You've got to deal with execution order when you inline your module code into your script. When you `use` or `require` a module its code is executed at during the `use | require` but when you inline it then you have to wait until the interpreter gets that far down into the script. The ways around that are to manually put your @ISA stuff into something that happens earlier or `use base` which will do the right thing for you automatically.
Oops! I accidentally wrote INC earlier. It is now fixed to say @ISA.