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

  1.  
  2. <HTML>
  3. <HEAD>
  4. <TITLE>Text::ParseWords - parse text into an array of tokens or array of 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> Text::ParseWords - parse text into an array of tokens or array of 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="#examples">EXAMPLES</A></LI>
  26.     <LI><A HREF="#authors">AUTHORS</A></LI>
  27. </UL>
  28. <!-- INDEX END -->
  29.  
  30. <HR>
  31. <P>
  32. <H1><A NAME="name">NAME</A></H1>
  33. <P>Text::ParseWords - parse text into an array of tokens or array of 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 Text::ParseWords;
  46.   @lists = &nested_quotewords($delim, $keep, @lines);
  47.   @words = &quotewords($delim, $keep, @lines);
  48.   @words = &shellwords(@lines);
  49.   @words = &parse_line($delim, $keep, $line);
  50.   @words = &old_shellwords(@lines); # DEPRECATED!</PRE>
  51. <P>
  52. <HR>
  53. <H1><A NAME="description">DESCRIPTION</A></H1>
  54. <P>The &nested_quotewords() and &quotewords() functions accept a delimiter 
  55. (which can be a regular expression)
  56. and a list of lines and then breaks those lines up into a list of
  57. words ignoring delimiters that appear inside quotes.  &quotewords()
  58. returns all of the tokens in a single long list, while &nested_quotewords()
  59. returns a list of token lists corresponding to the elements of @lines.
  60. &parse_line() does tokenizing on a single string.  The &*quotewords()
  61. functions simply call &parse_lines(), so if you're only splitting
  62. one line you can call &parse_lines() directly and save a function
  63. call.</P>
  64. <P>The $keep argument is a boolean flag.  If true, then the tokens are
  65. split on the specified delimiter, but all other characters (quotes,
  66. backslashes, etc.) are kept in the tokens.  If $keep is false then the
  67. &*quotewords() functions remove all quotes and backslashes that are
  68. not themselves backslash-escaped or inside of single quotes (i.e.,
  69. &quotewords() tries to interpret these characters just like the Bourne
  70. shell).  NB: these semantics are significantly different from the
  71. original version of this module shipped with Perl 5.000 through 5.004.
  72. As an additional feature, $keep may be the keyword ``delimiters'' which
  73. causes the functions to preserve the delimiters in each string as
  74. tokens in the token lists, in addition to preserving quote and
  75. backslash characters.</P>
  76. <P>&shellwords() is written as a special case of &quotewords(), and it
  77. does token parsing with whitespace as a delimiter-- similar to most
  78. Unix shells.</P>
  79. <P>
  80. <HR>
  81. <H1><A NAME="examples">EXAMPLES</A></H1>
  82. <P>The sample program:</P>
  83. <PRE>
  84.   use Text::ParseWords;
  85.   @words = &quotewords('\s+', 0, q{this   is "a test" of\ quotewords \"for you});
  86.   $i = 0;
  87.   foreach (@words) {
  88.       print "$i: <$_>\n";
  89.       $i++;
  90.   }</PRE>
  91. <P>produces:</P>
  92. <PRE>
  93.   0: <this>
  94.   1: <is>
  95.   2: <a test>
  96.   3: <of quotewords>
  97.   4: <"for>
  98.   5: <you></PRE>
  99. <P>demonstrating:</P>
  100. <OL>
  101. <LI><STRONG><A NAME="item_a_simple_word">a simple word</A></STRONG><BR>
  102.  
  103. <LI><STRONG><A NAME="item_multiple_spaces_are_skipped_because_of_our_%24deli">multiple spaces are skipped because of our $delim</A></STRONG><BR>
  104.  
  105. <LI><STRONG><A NAME="item_use_of_quotes_to_include_a_space_in_a_word">use of quotes to include a space in a word</A></STRONG><BR>
  106.  
  107. <LI><STRONG><A NAME="item_use_of_a_backslash_to_include_a_space_in_a_word">use of a backslash to include a space in a word</A></STRONG><BR>
  108.  
  109. <LI><STRONG><A NAME="item_use_of_a_backslash_to_remove_the_special_meaning_o">use of a backslash to remove the special meaning of a double-quote</A></STRONG><BR>
  110.  
  111. <LI><STRONG><A NAME="item_word">another simple word (note the lack of effect of the
  112. backslashed double-quote)</A></STRONG><BR>
  113.  
  114. </OL>
  115. <P>Replacing <CODE>&quotewords('\s+', 0, q{this   is...})</CODE>
  116. with <CODE>&shellwords(q{this   is...})</CODE>
  117. is a simpler way to accomplish the same thing.</P>
  118. <P>
  119. <HR>
  120. <H1><A NAME="authors">AUTHORS</A></H1>
  121. <P>Maintainer is Hal Pomeranz <<A HREF="mailto:pomeranz@netcom.com">pomeranz@netcom.com</A>>, 1994-1997 (Original
  122. author unknown).  Much of the code for &parse_line() (including the
  123. primary regexp) from Joerk Behrends <<A HREF="mailto:jbehrends@multimediaproduzenten.de">jbehrends@multimediaproduzenten.de</A>>.</P>
  124. <P>Examples section another documentation provided by John Heidemann 
  125. <<A HREF="mailto:johnh@ISI.EDU">johnh@ISI.EDU</A>></P>
  126. <P>Bug reports, patches, and nagging provided by lots of folks-- thanks
  127. everybody!  Special thanks to Michael Schwern <<A HREF="mailto:schwern@envirolink.org">schwern@envirolink.org</A>>
  128. for assuring me that a &nested_quotewords() would be useful, and to 
  129. Jeff Friedl <<A HREF="mailto:jfriedl@yahoo-inc.com">jfriedl@yahoo-inc.com</A>> for telling me not to worry about
  130. error-checking (sort of-- you had to be there).</P>
  131. <TABLE BORDER=0 CELLPADDING=0 CELLSPACING=0 WIDTH=100%>
  132. <TR><TD CLASS=block VALIGN=MIDDLE WIDTH=100% BGCOLOR="#cccccc">
  133. <STRONG><P CLASS=block> Text::ParseWords - parse text into an array of tokens or array of arrays</P></STRONG>
  134. </TD></TR>
  135. </TABLE>
  136.  
  137. </BODY>
  138.  
  139. </HTML>
  140.