The only time that you might want to use use lib '.' (and with extreme caution) is when running your program with taint mode (the -T switch) on, when the current directory is removed from @INC - this should be done with caution because it is not alway possible for a program to control what it's current working directory is before requiring or using any modules and in a less secure environment (such as a web server) there is a risk of malicious code in the current directory being substituted for that of a real module. At the very least one should assure oneself that the directories that are likely to be the working directory for your program are not world writeable - of course if it is necessary to add the (assumed) current working directory (probably the directory in which the program resides) to @INC when using '-T' then it is probably best to supply the absolute path rather than '.', which whilst having some postential impact on portability is actually more likely to work under some conditions as well as being more secure.
/J\