print ++($foo = 'Az'); # prints 'Ba'
print ++($foo = 'zz'); # prints 'aaa'
+C<undef> is always treated as numeric, and in particular is changed
+to C<0> before incrementing (so that a post-increment of an undef value
+will return C<0> rather than C<undef>).
+
The auto-decrement operator is not magical.
=head2 Exponentiation
If the right argument is an expression rather than a search pattern,
substitution, or transliteration, it is interpreted as a search pattern at run
-time. This can be less efficient than an explicit search, because the
-pattern must be compiled every time the expression is evaluated.
+time.
Binary "!~" is just like "=~" except the return value is negated in
the logical sense.
split(' ', q/STRING/);
-the difference being that it generates a real list at compile time. So
+the differences being that it generates a real list at compile time, and
+in scalar context it returns the last element in the list. So
this expression:
qw(foo bar baz)
In the RE above, which is intentionally obfuscated for illustration, the
delimiter is C<m>, the modifier is C<mx>, and after backslash-removal the
-RE is the same as for C<m/ ^ a s* b /mx>). There's more than one
+RE is the same as for C<m/ ^ a \s* b /mx>. There's more than one
reason you're encouraged to restrict your delimiters to non-alphanumeric,
non-whitespace choices.