+ no autovivification; # defaults to qw<fetch exists delete>
+ no autovivification qw<fetch store exists delete>;
+ no autovivification 'warn';
+ no autovivification 'strict';
+
+ Magically called when "no autovivification @opts" is encountered.
+ Enables the features given in @opts, which can be :
+
+ * 'fetch'
+
+ Turns off autovivification for rvalue dereferencing expressions,
+ such as :
+
+ $value = $arrayref->[$idx]
+ $value = $hashref->{$key}
+ keys %$hashref
+ values %$hashref
+
+ Starting from perl 5.11, it also covers "keys" and "values" on array
+ references :
+
+ keys @$arrayref
+ values @$arrayref
+
+ When the expression would have autovivified, "undef" is returned for
+ a plain fetch, while "keys" and "values" return 0 in scalar context
+ and the empty list in list context.
+
+ * 'exists'
+
+ Turns off autovivification for dereferencing expressions that are
+ parts of an "exists", such as :
+
+ exists $arrayref->[$idx]
+ exists $hashref->{$key}
+
+ '' is returned when the expression would have autovivified.
+
+ * 'delete'
+
+ Turns off autovivification for dereferencing expressions that are
+ parts of a "delete", such as :
+
+ delete $arrayref->[$idx]
+ delete $hashref->{$key}
+
+ "undef" is returned when the expression would have autovivified.
+
+ * 'store'
+
+ Turns off autovivification for lvalue dereferencing expressions,
+ such as :
+
+ $arrayref->[$idx] = $value
+ $hashref->{$key} = $value
+ for ($arrayref->[$idx]) { ... }
+ for ($hashref->{$key}) { ... }
+ function($arrayref->[$idx])
+ function($hashref->{$key})
+
+ An exception is thrown if vivification is needed to store the value,
+ which means that effectively you can only assign to levels that are
+ already defined. In the example, this would require $arrayref (resp.
+ $hashref) to already be an array (resp. hash) reference.
+
+ * 'warn'
+
+ Emits a warning when an autovivification is avoided.
+
+ * 'strict'
+
+ Throws an exception when an autovivification is avoided.
+
+ Each call to "unimport" adds the specified features to the ones already
+ in use in the current lexical scope.
+
+ When @opts is empty, it defaults to "qw<fetch exists delete>".