0.023 2022-09-16 T. R. Wyant Update discouragement notice for variables(), and add a TODO in t/variables.t for why. Correct normalization of ${^FOO} for PPI. If the caret is present the braces are not removed. 0.022 2022-04-15 T. R. Wyant Remove 'postderef' argument to new(). Postfix dereference is always recognized. 0.021 2022-04-03 T. R. Wyant Recognize postfix deref in '@{[ ... ]}' for determining minimum Perl version. This recognizes all forms of postfix dereference, including ->%*, ->&*, and ->**. NOTE that for now this remains a PPIx::QuoteLike::Token::Interpolation. Require PPI 1.238 for postfix deref support, and prune code that dealt with PPI's old behavior. Postfix %*, &*, and ** do not interpolate. Correct perl_version_introduced() for interpolated postfix scalar deref. 0.020 2022-03-17 T. R. Wyant Correct and optimize the computation of logical column position (the one that takes account of tabs). 0.019 2021-11-15 T. R. Wyant Add CONTRIBUTING file. Try to quell weird Win32 test failures which seem to occur only in tests where I am using 'use open' to put the standard handles into UTF-8 mode. The fix (I hope) is to do this to the Test::Harness handles at run time instead of to the standard handles at compile time. 0.018 2021-10-22 T. R. Wyant Argument postderef is now fatal. Correct generation of 'provides' metadata. Thanks to Favio Poletti for blogging https://github.polettix.it/ETOOBUSY/2021/06/15/the-real-pause-workaround/, and ultimately to Joel Berger for the pointer to https://metacpan.org/pod/CPAN::Meta::Spec#no_index 0.017 2021-04-16 T. R. Wyant All uses of the postderef argument to new() now warn. 0.016 2021-03-26 T. R. Wyant Add rt.cpan.org back to bug reporting methods. Long live RT! Get prerequisites up to snuff, and add xt/author/prereq.t to ensure they stay that way. Refactor authortest into three, so I do not have to generate stub files to test without optional modules. 0.015 2021-02-05 T. R. Wyant Handle <<\EOD and <<~\EOD, which are equivalent to <<'EOD' and <<~'EOD', respectively. Recognize indented here documents. Thanks to Olaf Alders (oalders) for alerting me to this omission. 0.014 2021-01-14 T. R. Wyant Add Travis CI testing. Use GitHub as bug tracker. R.I.P. rt.cpan.org. 0.013 2020-10-09 T. R. Wyant Warn on first use of attribute 'postderef'. 0.012 2020-07-28 T. R. Wyant Remove prototypes from testing subroutines defined in t/*.t. 0.011 2020-03-31 T. R. Wyant Normalize interpolation before feeding to PPI. This produces a more-easily-analyzed PPI parse. The ->variables() method is now discouraged. It was written to support Perl::Critic::Policy::Variables::ProhibitUnusedVarsStricter, but turned out to be inadequate for the job. Deprecate new() argument postderef. At this stage it is only documented as deprecated. In the first release after October 1 2020 it will warn on the first use. Eventually it will be retracted, and postfix dereferences will always be recognized. This is the default behavior now. Correct bracket matchers to accept multiple lines. This was, in some cases, causing interpolations to be misclassified as unknown tokens. 0.010 2020-03-09 T. R. Wyant Remove redundant and poorly-performing code introduced in version 0.009. 0.009 2020-02-27 T. R. Wyant Add new() argument index_locations which causes locations to be indexed during the parse. This defaults based on whether a location argument was provided, and whether the string being parsed is a PPI::Element. Add method statement(), which returns the PPI statement containing the string element, or nothing if none. Add PPI::Element location methods, to wit: location(), column_number(), line_number(), logical_filename(), logical_line_number(), and visual_column_number(). Add PPIx::QuoteLike::Utils::is_ppi_quotelike_element() which returns true if the argument is a PPI::Element of interest to us. All objects now have a variables() method inherited from PPIx::QuoteLike::Token. This method returns nothing unless overridden. It was added to eliminate $elem->can( 'variables' ) ad-hocery. Eliminate redirections in POD URL links 0.008 2019-08-16 T. R. Wyant Fix broken POD links, and add test to ensure they stay fixed. 0.007 2019-05-31 T. R. Wyant Prohibit interpolation inside \N{...}. Fix error message in eg/pqldump Allow PPIx::QuoteLike::Utils::__variables() to take a PPI::Element (rather than PPI::Node), PPIx::Regexp::Element, PPIx::QuoteLike, or PPIx::QuoteLike::Token. Add eg/variables 0.006 2018-07-09 T. R. Wyant Only standalone graphemes and non-characters allowed as delimiters starting with Perl 5.29.0. Non-ASCII delimiters started working in 5.8.3, so that is what perl_version_introduced() returns for them. Collateral with all this, accept word characters as delimiters, but only with at least one space between the operator and the expression -- that is, 'qq xyx' is OK, but 'qqxyx' is not. 0.005 2016-06-23 T. R. Wyant Fix problem handling nested brackets. Fix various corner cases, including such things as '${^O}', '${]}', and even '$${$_[0]}', which turned out to be '$$' followed by '$_[0]'. Also pulled the variable recognition out into a separate module in anticipation of it being used other places. Dumper message if arg does not parse Recognize "$^O" (e.g.) as interpolating $^O, not $^ followed by a literal "O". 0.004 2016-06-13 T. R. Wyant Require PPI, which was formerly optional. This is because I decided that the variables() method (which needs it) was one of the fundamental points of the module. 0.003 2016-06-12 T. R. Wyant Another attempt to make old Perls work. Version 0.002 assumed I could have other interpolations in a regex with (??{...}), but this turned out not to be the case if Perl was earlier than 5.18.0. This was actually a step in the wrong direction since (?-1) works back to 5.10.0. Add PPIx::QuoteLike::Dumper, redo eg/pqldump to use it. Recognize postderef slice syntax. This is stuff like $x->@[0,2] (array slice) or $x->@{foo,bar} (hash slice). Add methods perl_version_introduced() and perl_version_removed(). As of this release, the former returns '5.000' unless '\F' or postfix dereferencing are detected, and the latter always returns undef. 0.002 2016-06-11 T. R. Wyant Eliminte blockers to running under Perl 5.6. The significant change was replacing (?-1) in a regular expression (introduced in 5.9.5) with (??{...}) (going back to Heaven knows when, and used in Regexp::Common back in 2003). 0.001 2016-06-09 T. R. Wyant Initial release to CPAN.