# scalar - S list - L array - A
# hash - H sub (CV) - C file - F
# socket - Fs filetest - F- filetest_access - F-+
-# num-compare - S< dirhandle - DF
+# num-compare - S< dirhandle - DF infix bitwise - S|
# reference - R
# "?" denotes an optional operand.
i_divide integer division (/) ck_null ifsT2 S S
modulo modulus (%) ck_null IifsT2 S S
i_modulo integer modulus (%) ck_null ifsT2 S S
-repeat repeat (x) ck_repeat fmT2 L S
+repeat repeat (x) ck_repeat fmt2 L S
add addition (+) ck_null IfsT2 S S
i_add integer addition (+) ck_null ifsT2 S S
sne string ne ck_null ifs2 S S
scmp string comparison (cmp) ck_null ifst2 S S
-bit_and bitwise and (&) ck_bitop fst2 S S
-bit_xor bitwise xor (^) ck_bitop fst2 S S
-bit_or bitwise or (|) ck_bitop fst2 S S
+bit_and bitwise and (&) ck_bitop fst2 S S|
+bit_xor bitwise xor (^) ck_bitop fst2 S S|
+bit_or bitwise or (|) ck_bitop fst2 S S|
+nbit_and numeric bitwise and (&) ck_bitop fsT2 S S|
+nbit_xor numeric bitwise xor (^) ck_bitop fsT2 S S|
+nbit_or numeric bitwise or (|) ck_bitop fsT2 S S|
+sbit_and string bitwise and (&.) ck_bitop fst2 S S|
+sbit_xor string bitwise xor (^.) ck_bitop fst2 S S|
+sbit_or string bitwise or (|.) ck_bitop fst2 S S|
negate negation (-) ck_null Ifst1 S
i_negate integer negation (-) ck_null ifst1 S
not not ck_null ifs1 S
complement 1's complement (~) ck_bitop fst1 S
+ncomplement numeric 1's complement (~) ck_bitop fsT1 S
+# scomplement uses ck_bitop only for the experimental warning. Once the
+# warning is gone, this can change to ck_null.
+scomplement string 1's complement (~) ck_bitop fsT1 S
smartmatch smart match ck_smartmatch s2
length length ck_length ifsTu% S?
substr substr ck_substr st@ S S S? S?
-vec vec ck_fun isT@ S S S
+vec vec ck_fun ist@ S S S
index index ck_index isT@ S S S?
rindex rindex ck_index isT@ S S S?
kvaslice index/value array slice ck_null m@ A L
aeach each on array ck_each d% A
-akeys keys on array ck_each t% A
avalues values on array ck_each dt% A
+akeys keys on array ck_each t% A
# Hashes.
unpack unpack ck_fun u@ S S?
pack pack ck_fun fmst@ S L
-split split ck_split T@ S S S
+split split ck_split t@ S S S
join join or string ck_join fmst@ S L
# List operators.
entersub subroutine entry ck_subr dm1 L
leavesub subroutine exit ck_null 1
leavesublv lvalue subroutine return ck_null 1
+argcheck check subroutine arguments ck_null +
+argelem subroutine argument ck_null +
+argdefelem subroutine argument default value ck_null |
caller caller ck_fun t% S?
warn warn ck_fun imst@ L
die die ck_fun imst@ L
custom unknown custom operator ck_null 0
-# For smart dereference for each/keys/values
-reach each on reference ck_each d% S
-rkeys keys on reference ck_each t% S
-rvalues values on reference ck_each dt% S
-
# For CORE:: subs
coreargs CORE:: subroutine ck_null $
+avhvswitch Array/hash switch ck_null t1
runcv __SUB__ ck_null s0
lvref lvalue ref assignment ck_null d%
lvrefslice lvalue ref assignment ck_null d@
lvavref lvalue array reference ck_null d%
+anonconst anonymous constant ck_null ds1