This is the solution I used to go with. However, I happened upon one of tye's rants in the CB a number of years ago, where he pointed out that FindBin is broken, and that you're better with File::Spec->rel2abs($0).
I actually have the following in one of my scripts:
use File::Spec;
use File::Basename qw(dirname);
use Cwd qw(abs_path);
use lib File::Spec->catdir(dirname(dirname(abs_path($0))),'lib');
Not necessarily the best way to do it, but close enough, I figure. And probably faster than
FindBin