1Env(3) User Contributed Perl Documentation Env(3)
2
3
4
6 Env - perl module that imports environment variables as scalars or
7 arrays
8
10 use Env;
11 use Env qw(PATH HOME TERM);
12 use Env qw($SHELL @LD_LIBRARY_PATH);
13
15 Perl maintains environment variables in a special hash named %ENV. For
16 when this access method is inconvenient, the Perl module "Env" allows
17 environment variables to be treated as scalar or array variables.
18
19 The "Env::import()" function ties environment variables with suitable
20 names to global Perl variables with the same names. By default it ties
21 all existing environment variables ("keys %ENV") to scalars. If the
22 "import" function receives arguments, it takes them to be a list of
23 variables to tie; it's okay if they don't yet exist. The scalar type
24 prefix '$' is inferred for any element of this list not prefixed by '$'
25 or '@'. Arrays are implemented in terms of "split" and "join", using
26 $Config::Config{path_sep} as the delimiter.
27
28 After an environment variable is tied, merely use it like a normal
29 variable. You may access its value
30
31 @path = split(/:/, $PATH);
32 print join("\n", @LD_LIBRARY_PATH), "\n";
33
34 or modify it
35
36 $PATH .= ":.";
37 push @LD_LIBRARY_PATH, $dir;
38
39 however you'd like. Bear in mind, however, that each access to a tied
40 array variable requires splitting the environment variable's string
41 anew.
42
43 The code:
44
45 use Env qw(@PATH);
46 push @PATH, '.';
47
48 is equivalent to:
49
50 use Env qw(PATH);
51 $PATH .= ":.";
52
53 except that if $ENV{PATH} started out empty, the second approach leaves
54 it with the (odd) value "":."", but the first approach leaves it with
55 ""."".
56
57 To remove a tied environment variable from the environment, assign it
58 the undefined value
59
60 undef $PATH;
61 undef @LD_LIBRARY_PATH;
62
64 On VMS systems, arrays tied to environment variables are read-only.
65 Attempting to change anything will cause a warning.
66
68 Chip Salzenberg <chip@fin.uucp> and Gregor N. Purdy
69 <gregor@focusresearch.com>
70
71
72
73perl v5.26.3 2013-03-02 Env(3)