in reply to Re^2: Printing based on values?
in thread Printing based on values?

You could still use a hash:
use warnings; use strict; my %age = ( years => 28, months => 0, weeks => 0, days => 3, ); print 'You are '; for (qw(years months weeks days)) { print "$age{$_} $_ " if $age{$_}; } print "old.\n"; __END__ You are 28 years 3 days old.

But, an array may be simpler.

Replies are listed 'Best First'.
Re^4: Printing based on values?
by Douglas0028 (Novice) on Mar 27, 2011 at 00:16 UTC

    Ahh, wonderful, thank you! That works just as you said. I do have two questions about your code though...

    What does the "qw" do in the statement

    for (qw(years months weeks days))

    When I read that entire statement to myself...I read it as "For (qw?(Every key in the hash)...print "The value of the key followed by the key" if "That key value is true."

    Does that sound right to you? I'm not trying to be a pain, I just want to understand everything in that code.

      You're welcome.

      Yes, that's a good way to read it. I listed the keys inside qw in the order you wanted. See also Quote Like Operators.