Apparently the fact that FindBin is utterly broken is still news to many people, because I see the following very often:
use lib $FindBin::Bin;
This will put the directory from which the script was invoked into
@INC. The right incantation for that is:
use File::Spec::Functions qw( catpath splitpath rel2abs );
use lib catpath( ( splitpath( rel2abs $0 ) )[ 0, 1 ] );
Yes, it’s quite a bit longer. However, it’s not broken, and in those cases in which it fails, it will fail reliably and comprehensibly, rather than doing bizarre bogus things as FindBin will.