doesn't explain why new OS requires moving "." to the top
I doubt that it's a requirement of the OS. If you have a module named FOO.pm in "." and also in (say) /usr/share/perl5, and your code contains use FOO; then, in the first instance, it's the FOO.pm from /usr/share/perl5 that gets loaded. But in the second instance it's the FOO.pm from "." that gets loaded.
This happens because use FOO; tells perl to search through @INC from beginning to end, and load the first module named FOO.pm that it finds.
So ... if there's some problem with the FOO.pm that's in /usr/share/perl5 but the one in "." is ok, then it makes a big difference whether "." is searched before or after /usr/share/perl5.
I don't think you've told us the actual error you get if you don't use lib ".";
What is that error message ?
hi Rob,
arrggh! you're right, in one of INC paths latest OS contains newly module with the same name as mine in "."
many thanks, the world is saved again :)
dan