in reply to Re^2: undef==defined sometimes? (body question)
in thread undef==defined sometimes?

Seems like this is pushing me in the direction of not being able to return an array with a list of found values or 'undef' ...
Right, because it's perfectly valid to return a list with the single value 'undef', and that's indistinguishable from a sub returning 'undef' as meaning 'nothing to return'.
I think I 'resent' the syntax that @a=1, is an assignment to $a[0]...I can understand why it happens, but I'm not sure how useful it is given that by using the "@" and no index, I'm only wanting an array to be assigned. It seems a perversity to coerce undef into a defined array with value undef in the first element...
@a=1 is indeed an array operation; it clears any current content in the whole array before assigning to $a[0].

You'd suffer less confusion if you ditch the idea of "array" being a type of value. Values in perl are either lists or scalars; "array" is a variable type that can store a list (as is "hash", but in a different way).

  • Comment on Re^3: undef==defined sometimes? (body question)