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

  1.  
  2. <HTML>
  3. <HEAD>
  4. <TITLE>Tie::StdHash - base class definitions for tied hashes</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> Tie::StdHash - base class definitions for tied hashes</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="#caveats">CAVEATS</A></LI>
  26.     <LI><A HREF="#more information">MORE INFORMATION</A></LI>
  27. </UL>
  28. <!-- INDEX END -->
  29.  
  30. <HR>
  31. <P>
  32. <H1><A NAME="name">NAME</A></H1>
  33. <P>Tie::Hash, Tie::StdHash - base class definitions for tied hashes</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.     package NewHash;
  46.     require Tie::Hash;
  47. </PRE>
  48. <PRE>
  49.  
  50.     @ISA = (Tie::Hash);</PRE>
  51. <PRE>
  52.  
  53.     sub DELETE { ... }          # Provides needed method
  54.     sub CLEAR { ... }           # Overrides inherited method</PRE>
  55. <PRE>
  56.  
  57.     package NewStdHash;
  58.     require Tie::Hash;</PRE>
  59. <PRE>
  60.  
  61.     @ISA = (Tie::StdHash);</PRE>
  62. <PRE>
  63.  
  64.     # All methods provided by default, define only those needing overrides
  65.     sub DELETE { ... }</PRE>
  66. <PRE>
  67.  
  68.     package main;</PRE>
  69. <PRE>
  70.  
  71.     tie %new_hash, 'NewHash';
  72.     tie %new_std_hash, 'NewStdHash';</PRE>
  73. <P>
  74. <HR>
  75. <H1><A NAME="description">DESCRIPTION</A></H1>
  76. <P>This module provides some skeletal methods for hash-tying classes. See
  77. <A HREF="../../lib/Pod/perltie.html">the perltie manpage</A> for a list of the functions required in order to tie a hash
  78. to a package. The basic <STRONG>Tie::Hash</STRONG> package provides a <CODE>new</CODE> method, as well
  79. as methods <CODE>TIEHASH</CODE>, <CODE>EXISTS</CODE> and <CODE>CLEAR</CODE>. The <STRONG>Tie::StdHash</STRONG> package
  80. provides most methods required for hashes in <A HREF="../../lib/Pod/perltie.html">the perltie manpage</A>. It inherits from
  81. <STRONG>Tie::Hash</STRONG>, and causes tied hashes to behave exactly like standard hashes,
  82. allowing for selective overloading of methods. The <CODE>new</CODE> method is provided
  83. as grandfathering in the case a class forgets to include a <CODE>TIEHASH</CODE> method.</P>
  84. <P>For developers wishing to write their own tied hashes, the required methods
  85. are briefly defined below. See the <A HREF="../../lib/Pod/perltie.html">the perltie manpage</A> section for more detailed
  86. descriptive, as well as example code:</P>
  87. <DL>
  88. <DT><STRONG><A NAME="item_TIEHASH_classname%2C_LIST">TIEHASH classname, LIST</A></STRONG><BR>
  89. <DD>
  90. The method invoked by the command <CODE>tie %hash, classname</CODE>. Associates a new
  91. hash instance with the specified class. <CODE>LIST</CODE> would represent additional
  92. arguments (along the lines of <A HREF="../../lib/AnyDBM_File.html">the AnyDBM_File manpage</A> and compatriots) needed to
  93. complete the association.
  94. <P></P>
  95. <DT><STRONG><A NAME="item_STORE_this%2C_key%2C_value">STORE this, key, value</A></STRONG><BR>
  96. <DD>
  97. Store datum <EM>value</EM> into <EM>key</EM> for the tied hash <EM>this</EM>.
  98. <P></P>
  99. <DT><STRONG><A NAME="item_FETCH_this%2C_key">FETCH this, key</A></STRONG><BR>
  100. <DD>
  101. Retrieve the datum in <EM>key</EM> for the tied hash <EM>this</EM>.
  102. <P></P>
  103. <DT><STRONG><A NAME="item_FIRSTKEY_this">FIRSTKEY this</A></STRONG><BR>
  104. <DD>
  105. Return the (key, value) pair for the first key in the hash.
  106. <P></P>
  107. <DT><STRONG><A NAME="item_NEXTKEY_this%2C_lastkey">NEXTKEY this, lastkey</A></STRONG><BR>
  108. <DD>
  109. Return the next key for the hash.
  110. <P></P>
  111. <DT><STRONG><A NAME="item_EXISTS_this%2C_key">EXISTS this, key</A></STRONG><BR>
  112. <DD>
  113. Verify that <EM>key</EM> exists with the tied hash <EM>this</EM>.
  114. <P>The <STRONG>Tie::Hash</STRONG> implementation is a stub that simply croaks.</P>
  115. <P></P>
  116. <DT><STRONG><A NAME="item_DELETE_this%2C_key">DELETE this, key</A></STRONG><BR>
  117. <DD>
  118. Delete the key <EM>key</EM> from the tied hash <EM>this</EM>.
  119. <P></P>
  120. <DT><STRONG><A NAME="item_CLEAR_this">CLEAR this</A></STRONG><BR>
  121. <DD>
  122. Clear all values from the tied hash <EM>this</EM>.
  123. <P></P></DL>
  124. <P>
  125. <HR>
  126. <H1><A NAME="caveats">CAVEATS</A></H1>
  127. <P>The <A HREF="../../lib/Pod/perltie.html">the perltie manpage</A> documentation includes a method called <CODE>DESTROY</CODE> as
  128. a necessary method for tied hashes. Neither <STRONG>Tie::Hash</STRONG> nor <STRONG>Tie::StdHash</STRONG>
  129. define a default for this method. This is a standard for class packages,
  130. but may be omitted in favor of a simple default.</P>
  131. <P>
  132. <HR>
  133. <H1><A NAME="more information">MORE INFORMATION</A></H1>
  134. <P>The packages relating to various DBM-related implementations (<EM>DB_File</EM>,
  135. <EM>NDBM_File</EM>, etc.) show examples of general tied hashes, as does the
  136. <A HREF="../../lib/Config.html">the Config manpage</A> module. While these do not utilize <STRONG>Tie::Hash</STRONG>, they serve as
  137. good working examples.</P>
  138. <TABLE BORDER=0 CELLPADDING=0 CELLSPACING=0 WIDTH=100%>
  139. <TR><TD CLASS=block VALIGN=MIDDLE WIDTH=100% BGCOLOR="#cccccc">
  140. <STRONG><P CLASS=block> Tie::StdHash - base class definitions for tied hashes</P></STRONG>
  141. </TD></TR>
  142. </TABLE>
  143.  
  144. </BODY>
  145.  
  146. </HTML>
  147.