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

  1.  
  2. <HTML>
  3. <HEAD>
  4. <TITLE>Tie::CPHash - Case preserving but case insensitive hash table</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::CPHash - Case preserving but case insensitive hash table</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="#author">AUTHOR</A></LI>
  26. </UL>
  27. <!-- INDEX END -->
  28.  
  29. <HR>
  30. <P>
  31. <H1><A NAME="name">NAME</A></H1>
  32. <P>Tie::CPHash - Case preserving but case insensitive hash table</P>
  33. <P>
  34. <HR>
  35. <H1><A NAME="supportedplatforms">SUPPORTED PLATFORMS</A></H1>
  36. <UL>
  37. <LI>Linux</LI>
  38. <LI>Solaris</LI>
  39. <LI>Windows</LI>
  40. </UL>
  41. <HR>
  42. <H1><A NAME="synopsis">SYNOPSIS</A></H1>
  43. <PRE>
  44.     require Tie::CPHash;
  45.     tie %cphash, 'Tie::CPHash';</PRE>
  46. <PRE>
  47.     $cphash{'Hello World'} = 'Hi there!';
  48.     printf("The key `%s' was used to store `%s'.\n",
  49.            tied(%cphash)->key('HELLO WORLD'),
  50.            $cphash{'HELLO world'});</PRE>
  51. <P>
  52. <HR>
  53. <H1><A NAME="description">DESCRIPTION</A></H1>
  54. <P>The <STRONG>Tie::CPHash</STRONG> provides a hash table that is case preserving but
  55. case insensitive.  This means that</P>
  56. <PRE>
  57.     $cphash{KEY}    $cphash{key}
  58.     $cphash{Key}    $cphash{keY}</PRE>
  59. <P>all refer to the same entry.  Also, the hash remembers which form of
  60. the key was last used to store the entry.  The <A HREF="../../../lib/Pod/perlfunc.html#item_keys"><CODE>keys</CODE></A> and <A HREF="../../../lib/Pod/perlfunc.html#item_each"><CODE>each</CODE></A>
  61. functions will return the key that was used to set the value.</P>
  62. <P>An example should make this clear:</P>
  63. <PRE>
  64.     tie %h, 'Tie::CPHash';
  65.     $h{Hello} = 'World';
  66.     print $h{HELLO};            # Prints 'World'
  67.     print keys(%h);             # Prints 'Hello'
  68.     $h{HELLO} = 'WORLD';
  69.     print $h{hello};            # Prints 'WORLD'
  70.     print keys(%h);             # Prints 'HELLO'</PRE>
  71. <P>The additional <CODE>key</CODE> method lets you fetch the case of a specific key:</P>
  72. <PRE>
  73.     # When run after the previous example, this prints 'HELLO':
  74.     print tied(%h)->key('Hello');</PRE>
  75. <P>(The <A HREF="../../../lib/Pod/perlfunc.html#item_tied"><CODE>tied</CODE></A> function returns the object that <CODE>%h</CODE> is tied to.)</P>
  76. <P>If you need a case insensitive hash, but don't need to preserve case,
  77. just use <CODE>$hash{lc $key}</CODE> instead of <CODE>$hash{$key}</CODE>.  This has a lot
  78. less overhead than <STRONG>Tie::CPHash</STRONG>.</P>
  79. <P>
  80. <HR>
  81. <H1><A NAME="author">AUTHOR</A></H1>
  82. <P>Christopher J. Madsen <<EM><A HREF="mailto:chris_madsen@geocities.com">chris_madsen@geocities.com</A></EM>></P>
  83. <TABLE BORDER=0 CELLPADDING=0 CELLSPACING=0 WIDTH=100%>
  84. <TR><TD CLASS=block VALIGN=MIDDLE WIDTH=100% BGCOLOR="#cccccc">
  85. <STRONG><P CLASS=block> Tie::CPHash - Case preserving but case insensitive hash table</P></STRONG>
  86. </TD></TR>
  87. </TABLE>
  88.  
  89. </BODY>
  90.  
  91. </HTML>
  92.