From language/operators
See primary documentation in context for prefix ++
multi sub prefix:<++>( is rw) is assoc<non>
Increments its argument by one and returns the updated value.
my = 3;say ++; # OUTPUT: «4»say ; # OUTPUT: «4»
It works by calling the succ method (for successor) on its argument, which gives custom types the freedom to implement their own increment semantics.
From language/operators
See primary documentation in context for postfix ++
multi sub postfix:<++>( is rw) is assoc<non>
Increments its argument by one and returns the original value.
my = 3;say ++; # OUTPUT: «3»say ; # OUTPUT: «4»
It works by calling the succ method (for successor) on its argument, which gives custom types the freedom to implement their own increment semantics; when undefined, it sets the value to 1 and returns it.
my ;++;say ; # OUTPUT: «1»
Note that this does not necessarily return its argument; e.g., for undefined values, it returns 0:
my ;say ++; # OUTPUT: «0»say ; # OUTPUT: «1»
Increment on Str will increment the number part of a string and assign the resulting string to the container. An is rw
container is required.
my = "somefile-001.txt";say ++ for 1..3;# OUTPUT: «somefile-001.txtsomefile-002.txtsomefile-003.txt»
This will act on any Unicode numeral:
my = "ثمانية٧";++;say ; # OUTPUT: «ثمانية٨»
Including, since version 6.d, Thai numerals
my ="๙๙";++;say ; # OUTPUT: «๑๐๐»