T.S. Ravi Shankar wrote:

Mr. Sudharshan,

Very thanks for your quick reply !

So do you say that it is not possible through any means to change the
directories (since we are moving between the shells) ?


You can change the cwd of the current process. But, this change will not be reflected in the parent



( I was trying to build PERL equivalents of pushd & popd (Unix utilities by using cd inside the perl script ). Hence I was thinking of doing all "chdir"s inside the perl script with "system-cd"s )


BTW, pushd and popd are also shell built-ins, they are not external commands. Unless you can get the perl script to execute in the current process, this does not seem possible to me



Please let me know if you have any workarounds for this !!



None that I am aware of



Thanks again, Ravi




T.S. Ravi Shankar wrote:




Hi all :

Could anyone tell me how I could move between the directories ( or
change the present working directory ) with any perl command ??

I have tried these   system '/bin/cd $HOME'; ,   chdir '$HOME'; ,
exec 'cd $HOME';

After I execute the perl code, the PWD still remains unchanged.




This is roughly how shell executes commands, 1) fork a child process 2) exec the command in the child

Your option 1) system '/bin/cd $HOME'
This will create a sub shell from within your perl script and change it's current working directory.
Result: The cwd of your perl script process remains the same and so does it's parent's


Your option 2) chdir '$HOME'
The single quote will not expand the scalar $HOME, I guess this call should have failed.
chdir $HOME is what you are looking for.
Result: This will change the cwd of your perl script process not it's parent's


Your option 3) exec 'cd $HOME'
This will overlay you perl process' image, but the parent's cwd will still not change.


cd is a shell built-in. It is not an external command. We can help you better, if you explain why you are doing this



If the above ways are incorrect, please direct me to the correct.

Thanks,
Ravi









-- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]



Reply via email to