[Omaha.pm] auto-increment magic

Jay Hannah jay at jays.net
Fri Oct 19 11:50:36 PDT 2007


I'll buy you a beer if you've ever used this, or seen it used usefully 
in a real-life program...

j
(... and what is \z?)


perldoc perlop

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]*\z/", 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'



More information about the Omaha-pm mailing list