Revision history for Perl distribution Text-Balanced.

2.06 2022-06-05

    - Released with no further code changes.

2.05_01 2022-05-29

    - Fix direct use of _match_codeblock by e.g. Switch.  [mohawk2, CPAN

    - Fix resetting of whether "/" or "?" allowed to open regex.  [mohawk2, CPAN

    - Fix false negative on /.../ regex after "and".  [mohawk2, GH#7]

2.05 2022-05-22

    - Released with no further code changes.

2.04_02 2022-03-09

    - Fix missed case of spotting expression ending ")" or "]".  [mohawk2]

    - Fix too-loosely allowing ?...? as RE (often actually conditional op).

2.04_01 2022-03-05

    - Performance optimizations.  [mohawk2, PR#5]

    - Fix "<<=" being seen as heredoc, misparsing of "y=>".  [mohawk2, PR#6]

    - Update documentation to clarify extract_tagged() takes regexes.  [Jay
      Hannah, GH#3]

    - Modernize tests.  [mohawk2, GH#2]

    - Fix extract_variable() not recognising ${var} end of string.  [Ed J, CPAN

    - Fix string-comparing $@ causing exception.  [Ed J, CPAN RT#74994)

    - Update documentation to correct CSV example.  [, CPAN

    - Fix extract_codeblock() being confused by //.  [Ed J, CPAN RT#78313]

    - Improve here-doc detection.  [Ed J, CPAN RT#74714]

    - Fix extract_multiple() to track whether to allow /.../ as quotelike.
      [Ed J, CPAN RT#5722]

2.04 2020-12-11

    - Fixed INSTALLDIRS to account for the @INC reordering change in Perl 5.12.
      See Perl RT#116479 for details.  (Text-Balanced entered the perl core in
      Perl 5.7.1 so that's what the lower bound of the check should strictly be,
      but since we only support Perl 5.8.1 and higher anyway we do not need to
      check the lower bound.  The upper bound is correctly Perl 5.11.0 since the
      @INC reordering change in question (Perl core commit #b9ba2fadb1) first
      appeared in Perl 5.11.0.)

    - Removed superfluous loading of SelfLoader.  [<>, CPAN

    - Minor documentation patch.  [<>, CPAN RT#52623]

    - Typo fixes.  [<>, CPAN RT#85373]

    - Added optional Changes testing (skipped unless AUTHOR_TESTING).

    - Reformatted Changes file as per CPAN::Changes::Spec.

    - Added optional POD coverage testing (skipped unless AUTHOR_TESTING).

    - Added optional Perl::Critic testing (skipped unless AUTHOR_TESTING).

    - Made code Perl::Critic clean.

    - Included GitHub repository URLs in metadata now that source code has been
      uploaded to GitHub.

    - Included META.json file in addition to META.yml.

    - Set minimum required ExtUtils::MakeMaker version to 6.64 to ensure that
      all parameters used are supported, to save jumping through hoops to
      support earlier versions.  (This should not be a problem since
      ExtUtils::MakeMaker 6.64 is easily installed into Perl 5.8.1 and above,
      that being the whole point of the new choice of minimum supported Perl

    - Set minimum required Perl version to 5.8.1.  This is in line with the
      minimum requirement of the "Perl Toolchain".

2.03 2015-03-04

    - Removed test boilerplate code to synchronize with bleadperl.

2.02 2009-07-29

    - Fixed the mixed "Damian Conway <>" AUTHOR setting.  For the
      record, I am NOT the author, I'm just the maintainer.  Unfortunately,
      Makefile.PL does not have a MAINTAINER setting and this way all the emails
      about this module come to me.

2.01 2009-07-28

    - Taken over by Adam Kennedy to move it to a long-term maintenance mode.

    - Removing use warnings to restore 5.005 compatibility.

    - Removing Module::Build for higher back-compatibility.

    - Removing for higher back-compatibility.

    - use Exporter -> use Exporter () to avoid some pathalogical cases.

    - Upgraded the bundled author tests to be friendlier.

    - Changes order now a more normal reverse chronological.

2.0.0 2006-12-20 10:50:24

    - Added patches from bleadperl version (thanks Rafael!).

    - Fixed bug in second bracketed delimiters (thanks David).

1.99.1 2006-11-16 09:29:14

    - Included dependency on (thanks Andy).

1.99.0 2006-11-16 07:32:06

    - Removed reliance on expensive $& variable (thanks John).

    - Made Makefile.PL play nice with core versions (thanks Schwern!).

1.98 2006-05-05 14:58:49

    - Reinstated full test suite (thanks Steve!).

1.97 2006-05-01 21:58:04

    - Removed three-part version number and dependency on

1.96.0 2006-05-01 21:52:37

    - Fixed major bug in extract_multiple handling of unknowns.

    - Fixed return value on failure (thanks Eric).

    - Fixed bug differentiating heredocs and left-shift operators (thanks

1.95 2003-04-28 22:04

    - Constrainted _match_quote to only match at word boundaries (so
      "exemplum(hic)" doesn't match "m(hic)") (thanks Craig).

1.94 2003-04-13 02:18:41

    - Rereleased in attempt to fix CPAN problems.

1.91 2003-03-28 23:19:17

    - Fixed error count on t/extract_variable.t.

    - Fixed bug in extract_codelike when non-standard delimiters used.

1.90 2003-03-25 11:14:38

    - Fixed subtle bug in gen_extract_tagged (thanks Martin).

    - Doc fix: removed suggestion that extract_tagged defaults to matching HTML

    - 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.89 2001-11-18 22:49:50

    - Fixed extvar.t tests.

1.87 2001-11-15 21:25:35

    - 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.86 2001-09-03 06:57:08

    - Revised licence for inclusion in core distribution.

    - Consolidated POD in .pm file.

    - Renamed tests to let DOS cope with them.

1.85 2001-06-03 07:47:18

    - Fixed bug in extract_variable recognizing method calls that start with an
      underscore (thanks Jeff).

1.84 2001-04-26 11:58:13

    - Fixed bug in certain extractions not matching strings with embedded
      newlines (thanks Robin).

1.83 2001-01-15 12:43:12

    - Fixed numerous bugs in here doc extraction (many thanks Tim).

1.82 2001-01-14 14 16:56:04

    - 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.81 2000-09-13 11:58:49

    - 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,

    - Fixed bug in interaction between extract_multiple and gen_extract_tagged
      (Thanks Anthony).

1.77 1999-11-22 06:08:23

    - Fixed major bug in extract_codeblock (would not terminate if there was
      trailing whitespace).

    - Improved /.../ pattern parsing within codeblocks.

1.76 1999-11-19 06:51:54

    - 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 significantx
      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 prefixx
      matches after another zero-length match.

1.66 1999-07-02 13:29:22

    - 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.52 1999-03-04 12:43:38

    - 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.51 1999-02-13 10:31:55

    - 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

    - Added gen_extract_tagged() to "precompile" a specific tag extractor for
      repeated use (approximately 3 times faster!).

1.50 1998-08-27 09:20:19

    - 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.41 1998-08-10 14:51:50

    - Reinstated change to extract_codeblock from 1.36 which were mysteriously
      lost in 1.40.

1.40 1998-08-04 13:54:52

    - 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

    - Added

1.36 1998-07-14 12:26:04

    - 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.35 1998-06-24 09:53:31

    - Fixed handling of :: quantifiers in extract_variable().

    - Numerous trivial lexical changes to make xemacs happy.

1.24 1997-12-12

    - 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.23 1997-10-17 10:26:38-05:00

    - 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.21 1997-10-04 17:21:54-05:00

    - Synchronised with Parse::RecDescent distribution (version number will now
      reflect that package).

1.10 1997-09-30 17:23:23-05:00

    - Reworked extract_quotelike to correct handling of some obscure cases.

1.01 1997-09-08 18:09:18-05:00

    - Changed "quotemeta" to "quotemeta $_" to work around bug in Perl 5.002 and

1.00 1997-08-11 12:42:56

    - Original version.