sub foo {} foo(@foo{qw/a b/}); print keys %foo; # ab #### use warnings; sub context { defined $_[0] ? $_[0] ? 'list' : 'scalar' : 'void' } sub foo :lvalue { print context(wantarray); my $dummy = '' } sub bar :lvalue { print context(wantarray); my $dummy = '' } my $baz; ($baz, foo(), bar()) x= 3; __END__ Useless use of private variable in void context void scalar