Beefy Boxes and Bandwidth Generously Provided by pair Networks
Clear questions and runnable code
get the best and fastest answer
 
PerlMonks  

Re^5: system ( "source $script" )

by Anonyrnous Monk (Hermit)
on Jan 28, 2011 at 22:16 UTC ( [id://884942]=note: print w/replies, xml ) Need Help??


in reply to Re^4: system ( "source $script" )
in thread system ( "source $script" )

Does perl have something analogous to the shell's source?

Not for shell code, as shell code needs to be interpreted by a shell (likewise, a shell cannot run Perl code).

As for "the shell which the Perl script is running in", Perl is started from a shell, but it's a separate subprocess, so strictyl speaking, the Perl script is not running "in" a shell.  This means the same child-parent restrictions apply, i.e. the Perl script (nor any further child processes started from it) cannot set the environment of its parent shell.

Update: maybe this clarifies it somewhat. When you run something from the command line, for example

$ perl -e 'system "ps Tf ; sleep 1"'

you see child-parent relationships as follows (indenting means "child of")

PID TTY STAT TIME COMMAND 29353 pts/7 S 0:00 bash # th +e initial interactive command shell 29388 pts/7 S+ 0:00 \_ perl -e system "ps Tf ; sleep 1" # yo +ur Perl script 29389 pts/7 S+ 0:00 \_ sh -c ps Tf ; sleep 1 # a +shell started by system() 29390 pts/7 R+ 0:00 \_ ps Tf # a +subprocess run by the shell

All those are separate processes created via fork/exec, and no child is able to manipulate the environment of its respective parent process. But it does inherit the environment of its parent.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://884942]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others cooling their heels in the Monastery: (7)
As of 2025-03-27 17:43 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    When you first encountered Perl, which feature amazed you the most?










    Results (70 votes). Check out past polls.

    Notices?
    erzuuliAnonymous Monks are no longer allowed to use Super Search, due to an excessive use of this resource by robots.