also checks to see if a directory called $dir/$archname/auto exists...
Both PERL5LIB and use lib should behave the same in this respect. For example
$ mkdir -p testlib/x86_64-linux-gnu-thread-multi/auto
$ PERL5LIB=testlib perl -e'print join"\n",@INC'
testlib/x86_64-linux-gnu-thread-multi
testlib
/etc/perl
/usr/local/lib/perl/5.8.8
/usr/local/share/perl/5.8.8
/usr/lib/perl5
/usr/share/perl5
/usr/lib/perl/5.8
/usr/share/perl/5.8
/usr/local/lib/site_perl
$ perl -Mlib=testlib -e'print join"\n",@INC'
testlib/x86_64-linux-gnu-thread-multi
testlib
/etc/perl
/usr/local/lib/perl/5.8.8
/usr/local/share/perl/5.8.8
/usr/lib/perl5
/usr/share/perl5
/usr/lib/perl/5.8
/usr/share/perl/5.8
/usr/local/lib/site_perl
(the same applies to -Itestlib, btw)