Randal L. Schwartz wrote:
>
> ""Dr" == Ruud" <rvtol> writes:
>>
>> <quote src="perlop">
>> The "=>" operator is a synonym for the comma, but forces any word to
>> its left to be interpreted as a string (as of 5.001).
>> </quote>
>>
>> And AFAICS that isn't true:
>>
>> $ perl -MData::Dumper -wle'
>> %n = (00 => Integer, 01 => Floating, 10 => Char, 11 => Double);
>> print Dumper(\%n)
>> '
>> $VAR1 = {
>> '11' => 'Double',
>> '1' => 'Floating',
>> '0' => 'Integer',
>> '10' => 'Char'
>> };
>>
>> So I filed a bug-report about perlop.
>
> Why? What makes 01 and 00 a "word"?
>
> It's acting correctly. You just need the correct definition of word.
This is indeed a documentation bug. perlop says, in full:
~ The "=>" operator is a synonym for the comma, but forces any word (consisting
~ entirely of word characters) to its left to be interpreted as a string (as of
~ 5.001). This includes words that might otherwise be considered a constant or
~ function call.
Now '01' consists entirely of /\w/ characters, and certainly might 'otherwise be
considered a constant', yet it provides the hash key '1'. The version in the
Camel is correct:
~ The => digraph is mostly just a synonym for the comma operator. It's useful
~ for documenting arguments that come in pairs. It also forces any identifier to
~ its immediate left to be interpreted as a string.
And we know '01' isn't a Perl identifier so we no longer expect it to be
interpreted as a literal hash key.
perlop needs updating.
Rob
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>