sub get_array { my @x = (4, 5, 6); return @x; } sub get_list { return (10, 11, 12, get_array()); } my @as_array = get_list(); my $as_scalar = get_list(); print "last list item: $as_array[-1]\n"; print "list in scalar: $as_scalar\n"; __END__ last list item: 6 list in scalar: 3 #### sub context_in_position { my ($position_name) = @_; my $wa = wantarray; my $context; if ( $wa ) { $context = 'list' } elsif ( defined $wa ) { $context = 'scalar' } else { $context = 'void' } print "context in position '$position_name': $context\n"; return; } sub list { return ( context_in_position( 'a' ), context_in_position( 'b' ), ); } print "list() in void:\n"; list(); print "list() in scalar:\n"; scalar list(); print "list() in list:\n"; () = list(); __END__ list() in void: context in position 'a': void context in position 'b': void list() in scalar: context in position 'a': scalar context in position 'b': scalar list() in list: context in position 'a': list context in position 'b': list