-----Original Message-----
>From: Jenda Krynicky <[EMAIL PROTECTED]>
>Sent: Jan 23, 2008 12:59 AM
>To: beginners-list <[email protected]>
>Subject: Re: about the dot
>
>From: Jeff Pang <[EMAIL PROTECTED]>
>> I'm a little confused by perl's dot operator.for example,
>>
>> $ perl -le 'print 3 . 4 '
>> 34
>> $ perl -le 'print 3.4 '
>> 3.4
>>
>> these two commands got different results.
>>
>> who says Perl interpreter will ignore the blackspace around an operator? I
>> saw it doesn't here.
>> Ok you may say 3.4 is a float not a statement with '.' operation, but this
>> case really make people confused.
>
>As far as I can tell you are the first to get confused.
>
>I mean if the compiler sees a digit it knows a numerical literal
>starts. So it reads as much as it can that still matches the
>definition of numberical literal and then looks for an operator or
>end of statement or end of block or closing brace or ...
>
>3.4 whole matches so it is treated as such. And since spaces are not
>allowed withing numerical literals as soon as perl encounters a space
>the literal is considered complete and perl starts to look for the
>next thing.
>
>In either case it is what it looks like. 3.4 looks like a float so it
>is float. 3 . 4 doesn't look like a single float. It looks like two
>integers with some operator. And that's what it is.
>
Ok thanks.
But how about this case? why it can't work as we think?
$ perl -le 'print 3.4 .3. 4'
Number found where operator expected at -e line 1, near "3. 4"
(Missing operator before 4?)
syntax error at -e line 1, near "3. 4"
Execution of -e aborted due to compilation errors.
and why this can work?
$ perl -le 'print 3.4 .3 .4'
3.434
in the first case, what rules let perl think the last dot is not an operator
but a part of the float?
Regards,
Jeff Pang
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
http://learn.perl.org/