+ * 'store'
+
+ Turn off autovivification for lvalue dereferencing expressions, such
+ as "$hashref->{key}[$idx]{$field} = $value" or "for
+ ($hashref->{key}[$idx]{$field}) { ... }". 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 "$hashref->{key}[$idx]" to
+ already be a hash reference).
+
+ * 'warn'
+
+ Emit a warning when an autovivification is avoided.
+
+ * 'strict'
+
+ Throw 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/".
+
+ "import @opts"
+ Magically called when "use autovivification" is encountered. Disables
+ the features given in @opts, which can be the same as for "unimport".
+
+ Each call to "import" removes the specified features to the ones already
+ in use in the current lexical scope.
+
+ When @opts is empty, it defaults to restoring the original Perl
+ autovivification behaviour.
+
+CAVEATS
+ The pragma doesn't apply when one dereferences the returned value of an
+ array or hash slice, as in "@array[$id]->{member}" or
+ @hash{$key}->{member}. This syntax is valid Perl, yet it's discouraged
+ as the slice is here useless since the dereferencing enforces scalar
+ context. If warnings are turned on, Perl will complain about one-element
+ slices.