Changes for version 0.001000 - 2022-08-03
- Improved parsing of modern subroutine signatures (Thanks, Juerd!)
- Now supports all the new syntactic features added in Perls v5.28 to v5.36 including:
- try/catch/finally
- the isa operator
- named regex assertions
- missing lower bounds on regex counted repetitions
- "spacey" curlies in regexes
- 0o7777 octal constants
- Unicode paired delimiters on quotelikes
- Improved parsing of s/.../{...}e code blocks (Thanks, Zaki!)
- Fixed several edge cases of postfix dereferencing (Thanks, Zaki!)
- The perlop manpage states: "Interpolation in patterns has several quirks: $|, $(, and $) are not interpolated..." PPR now enforces that. (Thanks, Zaki!)
- Also fixed NON-interpolation of variables inside qq'...', qr'...', etc. (Thanks, Zaki!)
- NOTE: BACKWARDS INCOMPATIBLE CHANGE... Solving some of the above issues required deep changes to the mechanism of term-matching within the regex...to better reflect actual term precedence within Perl. This means that the subrules (?&PerlTerm), (?&PerlScalarAccess) and (?&PerlArrayAccess) now match differently. Specifically, (?&PerlTerm) now matches chains of trailing -> dereferences and/or -> sub/method calls, while (?&PerlScalarAccess) and (?&PerlArrayAccess) no longer do so. If you were previously using these last two subrules for stand-along matching you will need to be more specific:
- Old behaviour of... # Now requires...
- / (?&PerlScalarAccess) /x / (?&PerlScalarAccess) (?&PerlTermPostfixDerefence) /x
- / (?&PerlArrayAccess) /x / (?&PerlArrayAccess) (?&PerlTermPostfixDerefence) /x
Documentation
Generate test of block matching by scouring a source tree
Generate test of statement matching by scouring a source tree