Dr.Ruud wrote:
> 
> "John W. Krahn" schreef:
>> 
>> Dr.Ruud wrote:
>>> 
>>> Yes, "passing the bareword test" is a better phrase than only
>>> mentioning "word" characters.
>>>
>>> There are border cases though:
>>>
>>> perl -Mstrict -MData::Dumper -wle'
>>>   $_ = { AB => 1, +AB => 2, -AB => 3 };
>>>   print Dumper $_
>>> '
>>> $VAR1 = {
>>>           '-AB' => 3,
>>>           'AB' => 2
>>>         };
>> 
>> It depends on what you mean by "border case"?
> 
> Well, I expected both +AB and -AB would trigger a "bareword" error.
> But also like this:
> 
>   $ perl -Mstrict -wle 'my $x = -XY; print $x'
> 
> there is no error message.
> 
> 
> With a "+" it is different though:
> 
>   $ perl -Mstrict -wle 'my $x = +XY; print $x'
>   Bareword "XY" not allowed while "strict subs" in use at -e line 1.
>   Execution of -e aborted due to compilation errors.
> 
> 
>> Unary plus and unary minus appear to be behaving correctly.  :-)
> 
> Right. :)

perldoc perlop

[ snip ]

       Symbolic Unary Operators

[ snip ]

       Unary "-" performs arithmetic negation if the operand is numeric.  If
       the operand is an identifier, a string consisting of a minus sign
       concatenated with the identifier is returned.  Otherwise, if the string
       starts with a plus or minus, a string starting with the opposite sign
       is returned.  One effect of these rules is that -bareword is equivalent
                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
       to "-bareword".
       ^^^^^^^^^^^^^^

[ snip ]

       Unary "+" has no effect whatsoever, even on strings.  It is useful
       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
       syntactically for separating a function name from a parenthesized
       expression that would otherwise be interpreted as the complete list of
       function arguments.  (See examples above under "Terms and List
       Operators (Leftward)".)



John
-- 
Perl isn't a toolbox, but a small machine shop where you can special-order
certain sorts of tools at low cost and in short order.       -- Larry Wall

-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
http://learn.perl.org/


Reply via email to