in reply to What are all the false values in Perl ((conditional, boolean, whitespace, unprintable characters)
I may be mistaken, but I think that once something is evaluated in scalar context, I believe it's context is set to 'TRUE'. You print statement has set it to true whether or not the value is true.
Mick
In Section
Seekers of Perl Wisdom