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
Comment on Re: What are all the false values in Perl ((conditional