http://qs321.pair.com?node_id=11132918


in reply to Re: Perl 5.34 is released
in thread Perl 5.34 is released

# qr/{,n}/ is now accepted

I find this code very unfortunate, what does it mean if the empty string can be repeated n times?

This could better be either a syntax error. But I'm rather expecting Perl not reading the curlies as metas.

from the delta

An empty lower bound is now accepted for regular expression quantifiers, like {,3}.

so {,3} is the same like {0,3} or {1,3} ?

please elaborate!

edit

to demonstrate my point

DB<8> $re = qr/{0,3}/ DB<9> p "" =~ $re DB<10> p "{0,3}" =~ $re 1 DB<11> p $] 5.032001 DB<12> DB<13> use warnings; use strict; my $re = qr/{,3}/ DB<14>

the curlies are taken literally!

qr/{,3}/ was always allowed.

Cheers Rolf
(addicted to the Perl Programming Language :)
Wikisyntax for the Monastery

Replies are listed 'Best First'.
Re^3: Perl 5.34 is released (bad code example)
by haj (Vicar) on May 23, 2021 at 14:26 UTC
      Discussing "very unfortunate" and "bad" code examples is hardly "hair splitting".

      We both are experienced enough to handle this, but many others won't.

      ...documentation can include sloppy wording, that's hard to avoid.

      But sloppy code is not a good idea, since there is no doubt of interpretation.

      I'll file a perlbug.

      Cheers Rolf
      (addicted to the Perl Programming Language :)
      Wikisyntax for the Monastery

Re^3: Perl 5.34 is released
by 1nickt (Canon) on May 23, 2021 at 12:36 UTC

    "qr/{,3}/ was always allowed"

    Nope.

    $ perl -E 'say $]' 5.032001
    $ perl -Mstrict -wE 'my $str = "foobar"; say 1 if $str =~ /[o]{1,2}/' 1
    $ perl -Mstrict -wE 'my $str = "foobar"; say 1 if $str =~ /[o]{,2}/' Unescaped left brace in regex is illegal here in regex; marked by <-- +HERE in m/[o]{ <-- HERE ,2}/ at -e line 1.


    The way forward always starts with a minimal test.
      > $str =~ /[o]{,2}/'

      missing the point!

      Already proven in the post you downvoted (line 13)

      Cheers Rolf
      (addicted to the Perl Programming Language :)
      Wikisyntax for the Monastery

        "the post you downvoted"

        Nope again. (Update for the slow-to-comprehend: I did not downvote the post you linked to.)


        The way forward always starts with a minimal test.