TIL... I thought the 'value' of a hash must be a scalar value. So I ran:
$ perl -de 42 DB<5> @arr= qw ( x y z) DB<6> $href = { key => @arr } DB<7> x $href 0 HASH(0x4068718) 'key' => 'x' 'y' => 'z'
Boy, was I shocked when x $href did not yield:
x $href
0 HASH(0x4068718) 'key' => 3
The 'fat comma' fooled me.
Thank you for your comment! I empathize with your situation.
The values of hashes indeed must be scalar values; the problem here (which has caused many problems and even vulnerabilities) is that the fat comma doesn't construct a hash, just a list.
Let me rephrase - I assumed that the right hand side of a fat comma would have context scalar. However, since it just a comma, it has context list.
Are you sure you want to hide this comment? It will become hidden in your post, but will still be visible via the comment's permalink.
Hide child comments as well
Confirm
For further actions, you may consider blocking this person and/or reporting abuse
We're a place where coders share, stay up-to-date and grow their careers.
TIL...
I thought the 'value' of a hash must be a scalar value. So I ran:
Boy, was I shocked when
x $href
did not yield:The 'fat comma' fooled me.
Thank you for your comment!
I empathize with your situation.
The values of hashes indeed must be scalar values; the problem here (which has caused many problems and even vulnerabilities) is that the fat comma doesn't construct a hash, just a list.
Let me rephrase - I assumed that the right hand side of a fat comma would have context scalar. However, since it just a comma, it has context list.