Revision history for Perl extension Text::Balanced. 1.00 Mon Aug 11 12:42:56 1997 - original version 1.01 Mon Sep 8 18:09:18 EST 1997 - changed "quotemeta" to "quotemeta $_" to work around bug in Perl 5.002 and 5.003 1.10 Tue Sep 30 17:23:23 EST 1997 - reworked extract_quotelike to correct handling of some obscure cases 1.21 Sat Oct 4 17:21:54 EST 1997 - synchronised with Parse::RecDescent distribution (version number will now reflect that package) 1.23 Fri Oct 17 10:26:38 EST 1997 - changed behaviour in scalar and void contexts. Scalar contexts now return only the extracted string. Void contexts now remove the extracted string from the first argument (or $_). 1.24 - changed behaviour in scalar contexts. Scalar contexts now return the extracted string _and_ remove it from the first argument (or $_). - changed return values on failure (all contexts return undef for invalid return fields) - fixed some lurking bugs with trailing modifier handling - added :ALL tag to simplify wholesale importing of functions - fixed serious bug with embedded division operators ("/") This now also allows the ?...? form of pattern matching! 1.35 Wed Jun 24 09:53:31 1998 - fixed handling of :: quantifiers in extract_variable() - numerous trivial lexical changes to make xemacs happy 1.36 Tue Jul 14 12:26:04 1998 - Reinstated POD file missing from previous distribution - Added undocumented fourth parameter to extract_codeblock so as to correctly handle (?) and (s?) modifiers in RecDescent grammars. 1.40 Tue Aug 4 13:54:52 1998 - Added (optional) handling of embedded quoted text to extract_delimited (see revised entry in Balanced.pod) - Added extract_tagged which extracts text between arbitrary, optionally nested start and end tags (see new entry in Balanced.pod). - Added delimited_pat which builds a pattern which matches a string delimited by any of the delimiters specified (see new entry in Balanced.pod). - Added test.pl 1.41 Mon Aug 10 14:51:50 1998 - Reinstated change to extract_codeblock from 1.36 which were mysteriously lost in 1.40 1.50 Thu Aug 27 09:20:19 1998 - Improved the structure of the regex generated by delimited_pat (and used in extract_delimited). It's considerably more complex, but also more robust and much faster in the worst case. - Altered extract_variable to accept whitespace in variables, e.g. '$ a -> {'b'} -> [2]' 1.51 Sat Feb 13 10:31:55 1999 - Fixed bugs in prefix matching in extract_variable: * incorrectly used default if '' specified * now handles $#array correctly - Fixed bugs in extract_codeblock: * Now handles !~ properly * Now handles embedded comments better. * Now handles "raw" pattern matches better. - Added support for single strings or qr's as 'reject' and 'ignore' args to extract_tagged() - Added gen_extract_tagged() to "precompile" a specific tag extractor for repeated use (approximately 3 times faster!) 1.52 Thu Mar 4 12:43:38 1999 - Added CSV parsing example to documentation of extract_multiple. - Fixed a bug with extract_codeblock in "RecDescent" mode (it would accept "subrule(s?)" and "subrule(?)", but not "subrule(s)"). Thanks, Jan. 1.66 Fri Jul 2 13:29:22 1999 - Added ability to use quotelike operators in extract_bracketed - Fixed bug under 5.003 ('foreach my $func' not understood) - Added escape specification as fourth arg to &extract_delimited - Fixed handling of &delimited_pat and &extract_delimited when delimiter is same as escape - Fixed handling of ->, =>, and >> in &extract_code when delimiters are "<>" 1.76 Fri Nov 19 06:51:54 1999 - IMPORTANT: Now requires 5.005 or better. - IMPORTANT: Made extract methods sensitive to the pos() value of the text they are parsing. In other words, all extract subroutines now act like patterns of the form /\G.../gc. See documentation for details. - IMPORTANT: Changed semantics of extract_multiple, in line with the above change, and to simplify the semantics to something vaguely predictable. See documentation for details. - Added ability to use qr/../'s and raw strings as extractors in extract_multiple. See documentation. - Added fourth argument to extract_codeblock to allow outermost brackets to be separately specified. See documentation for details. - Reimplemented internals of all extraction subroutines for significant speed-ups (between 100% and 2000% improvement). - Fixed nasty bug in extract_variable and extract_codeblock (they were returning prefix as well in scalar context) - Allowed read-only strings to be used as arguments in scalar contexts. - Renamed delimited_pat to gen-delimited pat (in line with gen_extract_tagged). Old name still works, but is now deprecated. - Tweaked all extraction subs so they correctly handle zero-length prefix matches after another zero-length match. 1.77 Mon Nov 22 06:08:23 1999 - Fixed major bug in extract_codeblock (would not terminate if there was trailing whitespace) - Improved /.../ pattern parsing within codeblocks 1.81 Wed Sep 13 11:58:49 2000 - Fixed test count in extract_codeblock.t - Fixed improbable bug with trailing ->'s in extract_variable - Fixed (HT|X)ML tag extraction in extract_tagged (thanks, Tim) - Added explanatory note about prefix matching (thanks again, Tim) - Added handling of globs and sub refs to extract_variable - Pod tweak (thanks Abigail) - Allowed right tags to be run-time evaluated, so extract_tagged($text, '/([a-z]+)', '/end$1') works as expected. - Added optional blessing of matches via extract_multiple - Fixed bug in autogeneration of closing tags in extract_tagged (Thanks, Coke) - Fixed bug in interaction between extract_multiple and gen_extract_tagged (Thanks Anthony) 1.82 Sun Jan 14 16:56:04 2001 - Fixed nit in extract_variable.t (tested more cases than it promised to) - Fixed bug extracting prefix in extract_quotelike (Thanks Michael) - Added handling of Perl 4 package qualifier: $Package'var, etc. - Added handling of here docs (see documentation for limitations) - Added reporting of failure position via $@->{pos} (see documentation) 1.83 Mon Jan 15 12:43:12 2001 - Fixed numerous bugs in here doc extraction (many thanks Tim) 1.84 Thu Apr 26 11:58:13 2001 - Fixed bug in certain extractions not matching strings with embedded newlines (thanks Robin) 1.85 Sun Jun 3 07:47:18 2001 - Fixed bug in extract_variable recognizing method calls that start with an underscore (thanks Jeff) 1.86 Mon Sep 3 06:57:08 2001 - Revised licence for inclusion in core distribution - Consolidated POD in .pm file - renamed tests to let DOS cope with them 1.87 Thu Nov 15 21:25:35 2001 - Made extract_multiple aware of skipped prefixes returned by subroutine extractors (such as extract_quotelike, etc.) - Made extract_variable aware of punctuation variables - Corified tests 1.89 Sun Nov 18 22:49:50 2001 - Fixed extvar.t tests 1.90 Tue Mar 25 11:14:38 2003 - Fixed subtle bug in gen_extract_tagged (thanks Martin) - Doc fix: removed suggestion that extract_tagged defaults to matching HTML tags - Doc fix: clarified general matching behaviour - Fixed bug in parsing /.../ after a ( - Doc fix: documented extract_variable - Fixed extract_variable handling of $h{qr}, $h{tr}, etc. (thanks, Briac) - Fixed incorrect handling of $::var (thanks Tim) 1.91 Fri Mar 28 23:19:17 2003 - Fixed error count on t/extract_variable.t - Fixed bug in extract_codelike when non-standard delimiters used 1.94 Sun Apr 13 02:18:41 2003 - rereleased in attempt to fix CPAN problems 1.95 Mon Apr 28 00:22:04 2003 - Constrainted _match_quote to only match at word boundaries (so "exemplum(hic)" doesn't match "m(hic)") (thanks Craig)