$ cat ../script.pl
#!/usr/bin/perl
use Foo;
$ cat ../Foo.pm
print("Foo!\n"); # In same dir as script
1;
$ cat Foo.pm
print("Foo?\n"); # In current dir
1;
$ ../script.pl
Foo?
####
$ perl -le'print for @INC'
/home/eric/lib/perl5/i486-linux-gnu-thread-multi <-- From PERL5LIB
/home/eric/lib/perl5 <-- environ var
/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 -T -le'print for @INC'
/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
####
$ cat Foo.pm
print("Foo!\n");
1;
$ perl -e'use Foo'
Foo!
$ perl -T -e'use Foo'
Can't locate Foo.pm in @INC (@INC contains: ...) at -e line 1.
BEGIN failed--compilation aborted at -e line 1.
$ perl -T -I. -e'use Foo'
Foo!