##
sub li {
shift;
@_ ? ($#_ + 1, &li) : ();
}
print li qw(a b c d e f g); # prints 654321
####
sub li {
shift;
@_ ? ($#_, &li) : ();
}
print li qw(a b c d e f g); # prints -1-1-1-1-1-1
####
use vars '$x';
sub li {
$x = shift;
@_ ? ($x, &li) : ();
}
print li qw(a b c d e f g); # prints gggggg