Beefy Boxes and Bandwidth Generously Provided by pair Networks
good chemistry is complicated,
and a little bit messy -LW
 
PerlMonks  

Re: Setting $0 clears /proc/PID/environ too

by jcb (Parson)
on Jan 16, 2020 at 23:10 UTC ( [id://11111500]=note: print w/replies, xml ) Need Help??


in reply to Setting $0 clears /proc/PID/environ too

The problem is that the process name and /proc/PID/environ are actually windows into the address space of the process. The pointers that determine these windows are in the kernel and the program cannot update them, but you can change the data stored in the region they point to.

Does changing $0 destroy %ENV or does perl copy the environment out of the way before reusing the original environment block?

Replies are listed 'Best First'.
Re^2: Setting $0 clears /proc/PID/environ too
by kikuchiyo (Hermit) on Jan 17, 2020 at 09:39 UTC

    Does changing $0 destroy %ENV or does perl copy the environment out of the way before reusing the original environment block?

    No, that happens very early, so even BEGIN blocks have %ENV correctly filled, and in any case later changes to %ENV are not reflected in /proc/PID/environ. That file is more like a historical record of what the environment was when the process started, and as such, it has potential (if marginal) uses, and that's why this bothers me.

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others lurking in the Monastery: (3)
As of 2024-04-25 12:51 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found