In addition to all the good answers already given:
You don't need two if statements. This is simpler:
if ($USER{coffee} && $USER{coffee} > 5){
$msg = 'You drink too much coffee'
}
It's still redundant, but that's part of the point of using
warnings. Warnings seem to make perl assume less about
what you mean, so you need to tell it more about what you
want. In my experience
strict and
warnings compliant
code is always larger and slower than 'casual' freestyle
perl code, but for large scripts the price is well worth
what it buys in security and stability.
Update: Abigail makes a good point about sanity
checking. For that perl needs more information about
what we expect our input to contain:
if ($USER{coffee} && $USER{coffee} =~ /\d+/){
$msg = 'You drink too much coffee' if $USER{coffee} > 5;
}
--
Check out my Perlmonks Related Scripts like framechat,
reputer, and xNN.