[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index][Thread Index][Top&Search][Original]
Re: exists $foo[7] and delete $foo[7]
>: the pointer arrow dereference, implicit or explicit, stop autovivifying.
>:
>: $x[$i][$j] += $y[$i][$j] if $z[$i][$j] < 10;
>:
>: That will autovivify three things. Your task, if you choose to
>: accept it, it to make it autovivify but two of them.
>It shouldn't autovivify on any rvalues. I only see one lvalue there,
>so I only see one ref autovification (plus one array element creation).
Of course. I left out a not, or some such.
>Those have always been considered lvalues. Same for tr///. But not
>for m//.
>: And then there's this fun one:
>:
>: somefunc( $x[$i][$j] );
>That's been considered an honorary lvalue for some time, if I recall.
To varying degrees of success. For example, it at some point
would autovivify on fn($x[$i]), and now in theory, it shouldn't.
I think Sarathy used some deep trickery.
--tom
[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index][Thread Index][Top&Search][Original]