in reply to Re^4: Overriding default libs
in thread Overriding default libs

It doesn't look any levels down. If you:

use lib "/tmp"; use Foo::Bar;

... then Perl will use "/tmp/Foo/Bar.pm", but not "/tmp/x/Foo/Bar.pm".

The exception for your CPU architecture name (in your case "x86_64-linux-thread-multi") is due to some trickery by use lib which automatically detects those directories if they exist (and look like proper locations containing architecture-specific libraries), and unshifts two entries onto @INC instead of the normal one.

perl -E'sub Monkey::do{say$_,for@_,do{($monkey=[caller(0)]->[3])=~s{::}{ }and$monkey}}"Monkey say"->Monkey::do'