in reply to Re^2: Illegal octal digit error
in thread Illegal octal digit error

The LHS of => must be a bareword for the quoting to occur. perldata defines a bareword as "a word that has no other interpretation in the grammar".

The thing is, a bareword "will be treated as if it were a quoted string." That means => does nothing except prevent the default behaviour from being "outlawed" using use strict 'subs';.

I don't know what the wording should be, but the docs for => need fixing. Submit a patch!

Replies are listed 'Best First'.
Re^4: Illegal octal digit error (strict)
by tye (Sage) on Jun 08, 2009 at 18:26 UTC

    It sounds like you have fallen victim to the fact that perldata gives an overly narrow defintion for "bareword" while also using the term "bareword" the much broader way that I tend to.

    The thing is, a bareword "will be treated as if it were a quoted string." That means => does nothing except prevent the default behaviour from being "outlawed" using use strict 'subs';.

    To be clear, => does much more than prevent strict.pm from firing. => actually does some dramatic syntax transformation:

    time, # time() time=> # 'time' s,this,that, # A substitution s=>this=>that=> # Three strings die if 0; # No-op die if , 0; # Syntax error die if => 0; # die "if",0; q=<0==1 # '<0'=1 q=>0==1 # 'q',0==1

    - tye        

      Thanks. I realized as much after reading the related post you made yesterday. (In fact, I thought mine and yours were part of the same thread.)
Re^4: Illegal octal digit error
by druud (Sexton) on Jun 08, 2009 at 18:03 UTC
    -key and +key are treated differently