$x = $x + 1 ; #### $x = 0 ; $a[$x++] = $x ; # $a[0] = 0 or $a[0] = 1 ?? $a[$x] = $x++ ; # $a[2] = 1 or $a[1] = 1 ?? #### sub h { $_[0] = 1 ; return '!' ; } ; $x = 0 ; $a[$x] = h($x) ; # $a[0] = '!' or $a[1] = '!' ?? #### $x = $x + 1 ; # or $x = $x++ ; #### local $x = $x + 1 ; # or local $x = $x++ ; (!) #### sub d { $_[0] = 10 ; return 1 ; } ; $x = 78 ; print "\$x=$x. \$x + d(\$x) = ", $x + d($x), " \$x=$x\n" ; $x = 78 ; print "\$x=$x. d(\$x) + \$x = ", d($x) + $x, " \$x=$x\n" ; #### sub d { $_[0] = 10 ; return 1 ; } ; sub o { print $_[1] ; return $_[0] ; } ; $x = 78 ; print "\$x=$x. \$x + d(\$x): " ; print o($x, 'LHS ') + o(d($x), 'RHS '), " \$x=$x\n" ; $x = 78 ; print "\$x=$x. d(\$x) + \$x: " ; print o(d($x), 'LHS ') + o($x, 'RHS '), " \$x=$x\n" ;