jjn1056 / Template-Pure

Logic-less, markup driven HTML templates inspired by pure.js
2 stars 2 forks source link

Unescaped left brace in regex is illegal in regex #9

Open eserte opened 8 years ago

eserte commented 8 years ago

Tests fail with perl 5.25.1 and later. Sample fail report: http://www.cpantesters.org/cpan/report/456b7bba-2f66-11e6-beee-76d6ed1f9a26

eserte commented 8 years ago

Still fails with 0.016: http://matrix.cpantesters.org/?dist=Template-Pure%200.016

andk commented 8 years ago

Same for 0.017. Diagnostics:

Unescaped left brace in regex is illegal in regex; marked by <-- HERE in m/={ <-- HERE / at /tmp/loop_over_bdir-12118-4EgREO/Template-Pure-0.017-0/blib/lib/Template/Pure/ParseUtils.pm line 36, line 2231.

The line 36 is (https://metacpan.org/source/JJNAPIORK/Template-Pure-0.017/lib/Template/Pure/ParseUtils.pm#L36):

my $opentag = qr/={/;

So the resolution would be to make this:

my $opentag = qr/={/;

Tested and verified.

HTH&&Thanks,

jjn1056 commented 8 years ago

hey not sure, should it be

my $opentag = qr/={/;

or something? Does that work with old Perl? I tend to not worry too much about beta Perl releases since so much of it can change, do you know about this one, if its something that is definitely going to ship? Just it seems like it would break a lot of stuff :)

eserte commented 8 years ago

Yes, it should be

my $opentag = qr/=\{/;

and it works with older perls. Note that there was a deprecation warning in perl 5.22.x and perl 5.24.x (example http://www.cpantesters.org/cpan/report/79c6bf16-34f0-11e6-90a9-d992aecde14a ) and it looks like the change will really go into 5.26.0.

Just it seems like it would break a lot of stuff :)

Yes, unfortunately. The list is long: https://rt.perl.org/Public/Bug/Display.html?id=128139

eserte commented 8 years ago

Still fails with Template-Pure-0.023