Documentation for routine ++
assembled from the following pages:
Language documentation: Operators §
From Operators
(Operators) 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.
Language documentation: Operators §
From Operators
(Operators) 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. A 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: «๑๐๐»