I think you're right.  Here is an excerpt from the perlop perldoc.

"If, however, the variable has been used in only string contexts since it
was set, and has a value
that is not the empty string and matches the pattern "/^[a-zA-Z]*[0-9]*\z/",
the increment is done as a string, preserving each character within its
range, with carry:"

-----Original Message-----
From: nkuipers [mailto:[EMAIL PROTECTED]]
Sent: Tuesday, October 08, 2002 10:17 AM
To: [EMAIL PROTECTED]
Subject: RE: autoincrement and autodecrement


That's still not terribly specific.  Actually the second case of zz=>aaa 
throws me but looking at it, this is my *guess* (someone PLEASE correct me).

The first case is possible because (intuitively) B follows A and 'a' follows
z 
(in a wraparound sort of way).  The wraparound causes a carry so
incrementing 
z by one produces 'a', carry the one to A produces B.  The brackets ensure 
that $foo get assigned first, then operators are executed right to left, 
starting with ++ and ending with print.  The second case is possible with 
similar mechanics.  The second z starts the wraparound carry which is 
propagated by the first z, producing aaa.


>===== Original Message From "Anil Shekhar" <[EMAIL PROTECTED]> =====
>Thanks Mark.
>
>I mean how is the following possible.
>
>    print ++($foo = 'Az');      # prints 'Ba'
>    print ++($foo = 'zz');      # prints 'aaa'
>
>Thanks
>Anil
>
>----- Original Message -----
>From: "Mark Anderson" <[EMAIL PROTECTED]>
>To: "Anil Shekhar" <[EMAIL PROTECTED]>; <[EMAIL PROTECTED]>
>Sent: Tuesday, October 08, 2002 9:56 AM
>Subject: RE: autoincrement and autodecrement
>
>
>> "Can someone help me please?"
>>
>> Can you be more specific about what you don't understand?
>>
>> If $foo is a string of alpha characters and you use ++ you get a string
>with
>> the last character incremented alphabetically.
>>
>> This does not work both ways, -- does not reverse the effect of ++ on
>> strings.
>>
>> /\/\ark
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>> -----Original Message-----
>> From: Anil Shekhar [mailto:[EMAIL PROTECTED]]
>> Sent: Tuesday, October 08, 2002 9:48 AM
>> To: [EMAIL PROTECTED]
>> Subject: autoincrement and autodecrement
>>
>>
>> Hi ...
>>
>> I am trying to understand the auto-incr/decr out of the 'perlop' man
page.
>>
>> I could not fully understand the following.
>>
>> "If, however, the variable has been used in only string contexts since it
>> was set, and has a value that is not the empty string and matches the
>> pattern /^[a-zA-Z]*[0-9]*$/, the increment is done as a string,
preserving
>> each character within its range, with carry:
>>
>>
>>     print ++($foo = 'Az');      # prints 'Ba'
>>     print ++($foo = 'zz');      # prints 'aaa'
>> "
>>
>> Can someone help me please?
>>
>> Thanks
>> Anil
>> Auto-increment and Auto-decrement
>> ``++'' and ``--'' work as in C. That is, if placed before a variable,
they
>> increment or decrement the variable before returning the value, and if
>> placed after, increment or decrement the variable after returning the
>value.
>>
>> The auto-increment operator has a little extra builtin magic to it. If
you
>> increment a variable that is numeric, or that has ever been used in a
>> numeric context, you get a normal increment. If, however, the variable
has
>> been used in only string contexts since it was set, and has a value that
>is
>> not the empty string and matches the pattern /^[a-zA-Z]*[0-9]*$/, the
>> increment is done as a string, preserving each character within its
range,
>> with carry:
>>
>>
>>     print ++($foo = '99');      # prints '100'
>>     print ++($foo = 'a0');      # prints 'a1'
>>     print ++($foo = 'Az');      # prints 'Ba'
>>     print ++($foo = 'zz');      # prints 'aaa'
>> The auto-decrement operator is not magical.
>>
>>
>>
>>
>>
>>
>> --
>> To unsubscribe, e-mail: [EMAIL PROTECTED]
>> For additional commands, e-mail: [EMAIL PROTECTED]
>>
>
>
>
>--
>To unsubscribe, e-mail: [EMAIL PROTECTED]
>For additional commands, e-mail: [EMAIL PROTECTED]


-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to