ANS: $c,$f,$g,$h,$j, and $m are used it ways that trigger warnings $a++; # this is ok $b += 1; # this is ok $c = $c + 1; # but this is bad??? $d->{size} = 'big'; # both are just fine... treating undef as a hash ref $e->[5] = 35; # is ok, but treat it like a 0 and I get yelled at? $_ .= "$f"; # bad $_ .= $g; # still bad $_ = 'h=' . $h; # bad.... ok so you can't treat undef like a string $_ = $i . '=i'; # wait, no warning, maybe you can $_ = "j=$j"; # nope this tosses an error $_ = "$k=k"; # but this doesn't.... huh? $_ = $l x 5; # neither does this $_ = "$m" x 5; # but if I do the stringifing myself I get yelled at