Some slight tweaking is in order. The backslashes are not needed, since
&foo is already a reference in scalar context. You don't need the dot to dereference the routine value either, though it doesn't hurt anything. You don't need the last
$ if you bind to
&plus_op_subref instead. Also, one thing you couldn't know, since I just changed it, is that all operator names now use a variant of hash subscript syntax, so the
name of the builtin addition operator is any of:
infix:«+»
infix:<<+>>
infix:{'+'}
So I'd currently write your code as:
my &plus_op_subref = &infix:«+»;
my ¬_op_subref = &prefix:«!»;
say plus_op_subref(3, 2); # 5
See
http://www.wall.org/~larry/syn for preprints of the most recent Synopses. And
http://www.wall.org/~larry/apo has Apocalypses annotated with "Update" sections.