Thanks a lot for the replies,
and I'm terribly sorry for the typo errors - I had used the right syntax in the code, made a mistake while typing it here (and it had still not worked for me).
I tried whatever was suggested here, but in vain.
Then i realised the problem is with "eval" - I believe since eval executes everything given to it as if it were a separate script, and since the code said " eval 'use P4' ", the changes to @INC or the "use lib" was not visible to it and was hence picking the old path itself. I changed " eval 'use P4' " to
eval {
use lib 'path2';
use P4;
};
and it started picking up the right path (path2) :)
Cheers,
srinigs