sub function_call { print defined wantarray ? (wantarray?"list\n":"scalar\n") : "void\n" } sub calls_it_1 { print "calls_it_1: "; function_call(); # is this void or not? } sub calls_it_2 { print "calls_it_2: "; function_call(); 1; # this is void } calls_it_1(); my $x = calls_it_1(); my @x = calls_it_1(); calls_it_2(); my $y = calls_it_2(); my @y = calls_it_2(); __END__ calls_it_1: void calls_it_1: scalar calls_it_1: list calls_it_2: void calls_it_2: void calls_it_2: void