http://www.perlmonks.org?node_id=1201170


in reply to Re^3: $1[ (or "Does an array @1 exist in Perl ? - Yes!")
in thread $1[

One can reserve @1 , but the parser should croak or at least warn as long as the reservation wasn't filled with meaning.

I think %+ and %- are good examples of taking advantage of reserved variables after introducing named captures in regex. ( added in Perl v5.10.0)

@1 has no special meaning and doesn't need to be declared under strict!

As a side note, it's possible to use @a or %b without explicit declaration under strict ... that's really not optimal and really should be documented.

Cheers Rolf
(addicted to the Perl Programming Language and ☆☆☆☆ :)
Je suis Charlie!

Replies are listed 'Best First'.
Re^5: $1[ (reserved != allowed)
by rsFalse (Chaplain) on Oct 28, 2017 at 13:30 UTC
    By the way, today I've found that in Modern_Perl book, as an example is given @3 as incorrect name:
    These are invalid Perl identifiers: my $invalid name; # space is invalid my @3; # cannot start with number my %~flags; # symbols invalid in name
    (from 4th edition, page #13)
      > in Modern_Perl book, as an example is given @3 as incorrect name:
      These are invalid Perl identifiers: ... my @3; # cannot start with number

      Which is correct, cause my declares a lexical var, no exceptions needed there

      DB<475> my @3 =(1,2,3) Can't use global @3 in "my" at (eval 679)[C:/Perl_64/lib/perl5db.pl:64 +6] line 2, ...

      Cheers Rolf
      (addicted to the Perl Programming Language and ☆☆☆☆ :)
      Je suis Charlie!

        Ah, ok, now it is more clear for me. Thank you.