> >In fact, I shall extend RFC 128 to allow subroutine parameter to specify
   > >that they are non-autovivifying.
   > 
   > I'm not sure why it matters to the subroutine. We've already got
   > the hack so that
   > 
   >     fn( $a[$i] )
   > or 
   >     fn( $h{$k} )
   > 
   > will only autoviv those puppies if you muddle up $_[0]. This seems
   > sufficient.

But this:

        fn( $h{key}{subkey} )

always autovivifies $h{key}, whether or no you muddle that puppy.

Hence the need to be able to specify that C<fn>'s single argument be
evaluated in a non-autovivifying (an auto-mortifying???) context.



   > As for the rest, the behaviour has to be addressed where it's happening:
   > with the internals dereferencing operator itself.  How would you attach
   > a "nonautoviv" attribute to some pieces here:
   > 
   >     $z[$i][$j] = $x[$i][$j] + $y[$i][$j];

CORE::OP_ADD ( $leftop : nonav,  $rightop : nonav ) { ... }

CORE::OP_ASSIGN ( $lval, $rightop : nonav ) { ... }


Damian

Reply via email to