http://www.perlmonks.org?node_id=940737


in reply to system commands and returns

It doesn't "return" to the UNIX command prompt. I does exactly what you ask it to do: start up a *new* shell, as the user passed in as $_[0]. Typing exit causes this new shell to exit, which causes the system to terminate, which causes the next command to run.

If you want to run commands as the other user, pass them as an argument to su.

Replies are listed 'Best First'.
Re^2: system commands and returns
by perl_zen (Initiate) on Nov 30, 2011 at 14:40 UTC

    @JavaFan

    Thank you for this explanation. Being new to Perl, it is very helpful.

    I have several commands that I would like to execute as  other_user , so I would like that particular shell to execute more than one command. As in the sample code, I would like to su to the user and print "cOmMaNd LiNe" without any external interaction. Needing to type "exit" from the command line (in order to get "cOmMaNd LiNe" to print) prohibits this ability.

    I think your explanation and the example given by cdarke both look promising.