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.