On 2013-09-26, Steven D'Aprano <[email protected]> wrote:
> On Wed, 25 Sep 2013 15:18:41 +0000, Grant Edwards wrote:
>
>>> The Referer is not an environment variable.
>>
>> It is when you're writing a CGI app.
>>
>>> How would your shell know what URL you were just browsing?
>>
>> Because the HTTP server sets those environment variables before invoking
>> the CGI app.
>
> I stand corrected.
>
> That's a pretty shitty design though, isn't it?
On a Unix system when you invoke a program, you "pass" it four things:
1) A dictionary where keys/values are both strings [enviornment variables]
2) A list of strings [command line args]
3) A set of open file descriptors.
4) The current working directory.
You can provide input values to the program through any of these.
For interactive programs, 2 and 3 are the most convenient. For
programs intended to be invoked non-interactively via another program
the first option can be very elegent and versatile -- but it does make
use of the program interactively rather awkward. Semantically,
passing values to a program via environment variables is very similar
to keyword arguments to a Python function, while command line
arguments are like positional arguments to a Python function.
> Communicating via environment variables. What is this, 1998? :-)
>
> Mind you, I'm not sure what other alternatives exist.
Command line arguments, open file descriptors, or files in the CWD.
All are more difficult to use programmatically than environment
variables.
--
Grant Edwards grant.b.edwards Yow! I guess you guys got
at BIG MUSCLES from doing too
gmail.com much STUDYING!
--
https://mail.python.org/mailman/listinfo/python-list