Your code as posted
$ perl -MO=Deparse,-p junk use subs ('non_commutative'); sub non_commutative { use warnings; return(17); } use warnings; ($x = (10 * non_commutative())); ($y = non_commutative(*10)); print("$x\n$y\n\n"); ($x = (10 + non_commutative())); ($y = non_commutative(10)); print("$x\n$y\n"); junk syntax OK
If you want a function that doesn't take arguments, use a prototype of (), as in sub non_commutative() {return 17}
$ perl -MO=Deparse,-p junk sub non_commutative () { use warnings; return(17); } use warnings; ($x = (10 * non_commutative)); ($y = (non_commutative * 10)); print("$x\n$y\n\n"); ($x = (10 + non_commutative)); ($y = (non_commutative + 10)); print("$x\n$y\n"); junk syntax OK
or use constant non_commutative => 17;
$ perl -MO=Deparse,-p junk use constant ('non_commutative', 17); use warnings; ($x = 170); ($y = 170); print("$x\n$y\n\n"); ($x = 27); ($y = 27); print("$x\n$y\n"); junk syntax OK
In reply to Re: Perl disproves commutativity of Addition/Multiplication
by Anonymous Monk
in thread Perl disproves commutativity of Addition/Multiplication
by syphilis
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |