system will create a child owning another terminal different from parent and while the execution of command is finished, the handle is returned to the parent. So the question you asked is not relevant here. Outside perl, I can make multiple commands run in series one by one without caring but while running from perl, in the same child terminal I have to execute multiple serial commands. If I use another system call for a second command then a new child terminal is created and the previous handle is gone. Hence no use.