作者frank1983 (What?)
看板Perl
标题Re: [问题] 关於path的问题
时间Sun Apr 12 17:25:28 2009
※ 引述《tumc (HIHIHI)》之铭言:
: 刚刚发现一个奇的问题,小弟明明己经用
: chdir()变换到一个新的目录,
: 但利用$ENV{'PWD'}所查到的,却还是程式所在目录
: 有人可以回答吗,谢谢
下面是我个人的理解
有错的话请指正...
PWD 这个环境变数是由 shell (如 bash) 在维护的
perl 只是在执行时将所有的环境变数载入 %ENV
所以使用 chdir 改变工作目录时并不会影响到 $ENV{PWD}
不过当你执行 system('echo $PWD') 会印出正确的工作目录
system() 会 fork 一个子行程并执行 shell 的指令
此时环境变数 PWD 在新执行的 shell 即为现在所在的的工作目录
如果要知道现在所在的工作目录,可使用 getcwd:
use Cwd;
my $dir = getcwd;
(请见
http://perldoc.perl.org/Cwd.html)
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.112.230.108