[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]