@x = foo(); # foo called with list context
$x = (foo()); # foo called with scalar context
# note parens have no effect
$x = (foo())[@foo]; # foo called with list context
####
@x = foo(); # foo called in list context
$x = (foo()); # foo called in scalar context
# note parens have no effect
($x) = foo(); # foo called in list context, note lack
# of parens around foo has no effect
####
foo() x 2; # foo called in scalar context
$x = foo() x 2; # foo called in scalar context
@x = foo() x 2; # foo called in scalar context
(foo()) x 2; # foo called in void context
$x = (foo()) x 2; # foo called in scalar context
@x = (foo()) x 2; # foo called in list context