关于系统函数

system函数本来就可以接受一个list,没必要在@command上loop一下

不如用chdir来做你这个事情


QUOTE:
原帖由 ynchnluiti 于 2008-12-26 12:47 发表

cd是shell内嵌命令吧。

没错,而且它只能是 shell 的内置命令。current working directory(cwd) 是进程的属性,而且这个属性是进程启动后从父进程继承的,但是在 Unix-like 系统中,子进程只能从父进程继承属性(例如 cwd)、或修改其自己继承的属性,但不能修改父进程的属性。

cd 改变当前 shell 的 cwd,然后通过这个 shell 启动的进程就可以继承这个修改后的 cwd。假如说 cd 是一个外部命令,那么 shell 执行它需要启动一个单独的进程,那么这个 cd 只能修改它自己的 cwd,而它的修改不论是对启动它的 shell 还是该 shell 启动的其他进程都是不可见的。

在 Perl 中,改变当前进程的 cwd 可以用 chdir,详见 perldoc -f chdir

看完很有收获。
my $your_path = '/etc';
chdir "$your_path";
system ('list');