Welcome to the Monastery | |
PerlMonks |
comment on |
( [id://3333]=superdoc: print w/replies, xml ) | Need Help?? |
Dear Monks, Having nothing better to do, I wondered whether that "last expression" that is returned by non-empty subroutines according to perlsub is well-defined. So I tested my understanding of that corner of the docs with these one-liners:
and I am puzzled. I guess the difference between the first and the rest have to do with the underlying implementation, though I don't actually know it. From a conceptual point of view I wouldn't have been able to predict that behaviour. Then, IF the same value is returned always in the rest of the cases, I don't understand how can it be at the same time defined, == 0, and eq "" (edited: and not issue the warning Argument "" isn't numeric in numeric eq (==) ...). So, is "the last expression" well-defined albeit not always apparent? Are those one-liners just showing unespecified behaviour (which would be a valid answer to my original question)? -- fxn PS1: To make things more interesting someone in MagNet#perl pointed out that if you change the 1 with a 43 something different a warning is issued:
PS2: I have posted this question in a few places before, but got no definitive answer yet. In reply to "last expression" quiz by fxn
|
|