home *** CD-ROM | disk | FTP | other *** search
/ Chip 2000 May / Chip_2000-05_cd1.bin / zkuste / Perl / ActivePerl-5.6.0.613.msi / 䆊䌷䈹䈙䏵-䞅䞆䞀㡆䞃䄦䠥 / _81b3e6f90394d8bd2f480ef16ae518e8 < prev    next >
Text File  |  2000-03-23  |  4KB  |  108 lines

  1.  
  2. <HTML>
  3. <HEAD>
  4. <TITLE>Env - perl module that imports environment variables as scalars or arrays</TITLE>
  5. <LINK REL="stylesheet" HREF="../Active.css" TYPE="text/css">
  6. <LINK REV="made" HREF="mailto:">
  7. </HEAD>
  8.  
  9. <BODY>
  10. <TABLE BORDER=0 CELLPADDING=0 CELLSPACING=0 WIDTH=100%>
  11. <TR><TD CLASS=block VALIGN=MIDDLE WIDTH=100% BGCOLOR="#cccccc">
  12. <STRONG><P CLASS=block> Env - perl module that imports environment variables as scalars or arrays</P></STRONG>
  13. </TD></TR>
  14. </TABLE>
  15.  
  16. <A NAME="__index__"></A>
  17. <!-- INDEX BEGIN -->
  18.  
  19. <UL>
  20.  
  21.     <LI><A HREF="#name">NAME</A></LI><LI><A HREF="#supportedplatforms">SUPPORTED PLATFORMS</A></LI>
  22.  
  23.     <LI><A HREF="#synopsis">SYNOPSIS</A></LI>
  24.     <LI><A HREF="#description">DESCRIPTION</A></LI>
  25.     <LI><A HREF="#limitations">LIMITATIONS</A></LI>
  26.     <LI><A HREF="#author">AUTHOR</A></LI>
  27. </UL>
  28. <!-- INDEX END -->
  29.  
  30. <HR>
  31. <P>
  32. <H1><A NAME="name">NAME</A></H1>
  33. <P>Env - perl module that imports environment variables as scalars or arrays</P>
  34. <P>
  35. <HR>
  36. <H1><A NAME="supportedplatforms">SUPPORTED PLATFORMS</A></H1>
  37. <UL>
  38. <LI>Linux</LI>
  39. <LI>Solaris</LI>
  40. <LI>Windows</LI>
  41. </UL>
  42. <HR>
  43. <H1><A NAME="synopsis">SYNOPSIS</A></H1>
  44. <PRE>
  45.     use Env;
  46.     use Env qw(PATH HOME TERM);
  47.     use Env qw($SHELL @LD_LIBRARY_PATH);</PRE>
  48. <P>
  49. <HR>
  50. <H1><A NAME="description">DESCRIPTION</A></H1>
  51. <P>Perl maintains environment variables in a special hash named <CODE>%ENV</CODE>.  For
  52. when this access method is inconvenient, the Perl module <CODE>Env</CODE> allows
  53. environment variables to be treated as scalar or array variables.</P>
  54. <P>The <A HREF="../lib/Pod/perlfunc.html#item_import"><CODE>Env::import()</CODE></A> function ties environment variables with suitable
  55. names to global Perl variables with the same names.  By default it
  56. ties all existing environment variables (<CODE>keys %ENV</CODE>) to scalars.  If
  57. the <A HREF="../lib/Pod/perlfunc.html#item_import"><CODE>import</CODE></A> function receives arguments, it takes them to be a list of
  58. variables to tie; it's okay if they don't yet exist. The scalar type
  59. prefix '$' is inferred for any element of this list not prefixed by '$'
  60. or '@'. Arrays are implemented in terms of <A HREF="../lib/Pod/perlfunc.html#item_split"><CODE>split</CODE></A> and <A HREF="../lib/Pod/perlfunc.html#item_join"><CODE>join</CODE></A>, using
  61. <CODE>$Config::Config{path_sep}</CODE> as the delimiter.</P>
  62. <P>After an environment variable is tied, merely use it like a normal variable.
  63. You may access its value</P>
  64. <PRE>
  65.     @path = split(/:/, $PATH);
  66.     print join("\n", @LD_LIBRARY_PATH), "\n";</PRE>
  67. <P>or modify it</P>
  68. <PRE>
  69.     $PATH .= ":.";
  70.     push @LD_LIBRARY_PATH, $dir;</PRE>
  71. <P>however you'd like. Bear in mind, however, that each access to a tied array
  72. variable requires splitting the environment variable's string anew.</P>
  73. <P>The code:</P>
  74. <PRE>
  75.     use Env qw(@PATH);
  76.     push @PATH, '.';</PRE>
  77. <P>is equivalent to:</P>
  78. <PRE>
  79.     use Env qw(PATH);
  80.     $PATH .= ":.";</PRE>
  81. <P>except that if <CODE>$ENV{PATH}</CODE> started out empty, the second approach leaves
  82. it with the (odd) value ``<CODE>:.</CODE>'', but the first approach leaves it with ``<CODE>.</CODE>''.</P>
  83. <P>To remove a tied environment variable from
  84. the environment, assign it the undefined value</P>
  85. <PRE>
  86.     undef $PATH;
  87.     undef @LD_LIBRARY_PATH;</PRE>
  88. <P>
  89. <HR>
  90. <H1><A NAME="limitations">LIMITATIONS</A></H1>
  91. <P>On VMS systems, arrays tied to environment variables are read-only. Attempting
  92. to change anything will cause a warning.</P>
  93. <P>
  94. <HR>
  95. <H1><A NAME="author">AUTHOR</A></H1>
  96. <P>Chip Salzenberg <<EM><A HREF="mailto:chip@fin.uucp">chip@fin.uucp</A></EM>>
  97. and
  98. Gregor N. Purdy <<EM><A HREF="mailto:gregor@focusresearch.com">gregor@focusresearch.com</A></EM>></P>
  99. <TABLE BORDER=0 CELLPADDING=0 CELLSPACING=0 WIDTH=100%>
  100. <TR><TD CLASS=block VALIGN=MIDDLE WIDTH=100% BGCOLOR="#cccccc">
  101. <STRONG><P CLASS=block> Env - perl module that imports environment variables as scalars or arrays</P></STRONG>
  102. </TD></TR>
  103. </TABLE>
  104.  
  105. </BODY>
  106.  
  107. </HTML>
  108.